(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit f5396dfa85b3e127c132a549cd98c53dfaca6b05 Merge: 00cb09f957 eda39bb1c1 Author: Dom Garguilo AuthorDate: Fri Aug 16 17:19:54 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/gc/GarbageCollectWriteAheadLogs.java | 28 +++- .../gc/GarbageCollectWriteAheadLogsTest.java | 51 +++--- 2 files changed, 34 insertions(+), 45 deletions(-) diff --cc server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java index 79cbe9535a,c636c34c4b..4d2f1b4dc6 --- a/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java +++ b/server/gc/src/main/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogs.java @@@ -72,7 -65,8 +72,7 @@@ public class GarbageCollectWriteAheadLo private final VolumeManager fs; private final LiveTServerSet liveServers; private final WalStateManager walMarker; - private final AtomicBoolean hasCollected; + private final AtomicBoolean hasCollected = new AtomicBoolean(false); - private final Stream store; /** * Creates a new GC WAL object. @@@ -82,26 -76,44 +82,34 @@@ */ GarbageCollectWriteAheadLogs(final ServerContext context, final VolumeManager fs, final LiveTServerSet liveServers) { -this(context, fs, liveServers, new WalStateManager(context), createStore(context)); ++this(context, fs, liveServers, new WalStateManager(context)); + } + + /** +* Creates a new GC WAL object. Meant for testing -- allows for mocked objects. +* +* +* @param context the collection server's context +* @param fs volume manager to use +* @param liveServers a started LiveTServerSet instance +* @param walMarker a WalStateManager instance - * @param store a stream of TabletLocationState objects +*/ + GarbageCollectWriteAheadLogs(final ServerContext context, final VolumeManager fs, - final LiveTServerSet liveServers, final WalStateManager walMarker, - final Stream store) { ++ final LiveTServerSet liveServers, final WalStateManager walMarker) { this.context = context; this.fs = fs; this.liveServers = liveServers; - this.walMarker = createWalStateManager(context); - this.hasCollected = new AtomicBoolean(false); - } - - @VisibleForTesting - WalStateManager createWalStateManager(ServerContext context) { - return new WalStateManager(context); + this.walMarker = walMarker; -this.store = store; } - private static Stream createStore(final ServerContext context) { -var rootStream = TabletStateStore.getStoreForLevel(DataLevel.ROOT, context).stream(); -var metadataStream = TabletStateStore.getStoreForLevel(DataLevel.METADATA, context).stream(); -var userStream = TabletStateStore.getStoreForLevel(DataLevel.USER, context).stream(); -return Streams.concat(rootStream, metadataStream, userStream).onClose(() -> { - try { -rootStream.close(); - } finally { -try { - metadataStream.close(); -} finally { - userStream.close(); -} - } -}); + @VisibleForTesting + Stream createStore(Set liveTServers) { +GcWalsFilter walsFilter = new GcWalsFilter(liveTServers); + +return Stream.of(DataLevel.ROOT, DataLevel.METADATA, DataLevel.USER) +.map(dataLevel -> context.getAmple().readTablets().forLevel(dataLevel).filter(walsFilter) +.fetch(LOCATION, LAST, LOGS, PREV_ROW, SUSPEND).build()) +.flatMap(TabletsMetadata::stream); } public void collect(GCStatus status) { diff --cc server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogsTest.java index 7f4ec5173c,13c264a812..f868fd26d1 --- a/server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogsTest.java +++ b/server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectWriteAheadLogsTest.java @@@ -100,26 -94,14 +100,21 @@@ public class GarbageCollectWriteAheadLo marker.removeWalMarker(server1, id); EasyMock.expectLastCall().once(); EasyMock.replay(context, fs, marker, tserverSet); - GarbageCollectWriteAheadLogs gc = new GarbageCollectWriteAheadLogs(context, fs, tserverSet) { -var gc = -new GarbageCollectWriteAheadLogs(context, fs, tserverSet, marker, tabletOnServer1List) { - @Override - protected Map getSortedWALogs() { -return Collections.emptyMap(); - } -}; ++var gc = new GarbageCollectWriteAheadLogs(context, fs, tserverSet, marker) { + @Override + protected Map getSortedWALogs() { +return Collections.emptyMap(); + } + - @Override - WalStateManager createWalStateManager(ServerContext serverContext) { - return
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 00cb09f9572dbc418149eaad34f4f380251b8250 Merge: d8185cdea7 003cdf333d Author: Dom Garguilo AuthorDate: Fri Aug 16 14:47:07 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../core/client/lexicoder/BytesLexicoderTest.java | 4 +- .../core/client/lexicoder/LexicoderTest.java | 5 +- .../core/clientImpl/ClientTabletCacheImplTest.java | 5 +- .../core/clientImpl/lexicoder/ByteUtilsTest.java | 15 +-- .../accumulo/core/conf/ClientPropertyTest.java | 7 +- .../apache/accumulo/core/crypto/CryptoTest.java| 5 +- .../org/apache/accumulo/core/data/ColumnTest.java | 7 +- .../org/apache/accumulo/core/data/KeyTest.java | 38 .../apache/accumulo/core/data/MutationTest.java| 101 +++-- .../org/apache/accumulo/core/data/RangeTest.java | 12 +-- .../zookeeper/DistributedReadWriteLockTest.java| 3 +- .../core/file/rfile/CreateCompatTestFile.java | 5 +- .../core/file/rfile/GenerateSplitsTest.java| 3 +- .../accumulo/core/file/rfile/KeyShortenerTest.java | 11 ++- .../core/file/rfile/MultiThreadedRFileTest.java| 4 +- .../apache/accumulo/core/file/rfile/RFileTest.java | 6 +- .../core/iterators/system/ColumnFilterTest.java| 5 +- .../iterators/system/VisibilityFilterTest.java | 4 +- .../accumulo/core/iterators/user/FilterTest.java | 23 ++--- .../iterators/user/IndexedDocIteratorTest.java | 17 ++-- .../core/iterators/user/RegExFilterTest.java | 5 +- .../iterators/user/RowDeletingIteratorTest.java| 5 +- .../iterators/user/VersioningIteratorTest.java | 3 +- .../accumulo/core/security/AuthorizationsTest.java | 3 +- .../core/security/ColumnVisibilityTest.java| 8 +- .../balancer/HostRegexTableLoadBalancerTest.java | 8 +- .../hadoop/its/mapred/AccumuloInputFormatIT.java | 5 +- .../hadoop/its/mapred/AccumuloOutputFormatIT.java | 9 +- .../its/mapred/AccumuloRowInputFormatIT.java | 11 ++- .../hadoop/its/mapred/MultiTableInputFormatIT.java | 5 +- .../accumulo/hadoop/its/mapred/TokenFileIT.java| 9 +- .../its/mapreduce/AccumuloInputFormatIT.java | 5 +- .../its/mapreduce/AccumuloOutputFormatIT.java | 9 +- .../its/mapreduce/AccumuloRowInputFormatIT.java| 11 ++- .../its/mapreduce/MultiTableInputFormatIT.java | 5 +- .../accumulo/hadoop/its/mapreduce/RowHashIT.java | 5 +- .../accumulo/hadoop/its/mapreduce/TokenFileIT.java | 9 +- .../miniclusterImpl/MiniAccumuloClusterImpl.java | 2 +- .../accumulo/server/data/ServerMutationTest.java | 21 +++-- .../security/handler/ZKAuthenticatorTest.java | 2 +- .../org/apache/accumulo/monitor/it/WebViewsIT.java | 3 +- .../accumulo/tserver/CheckTabletMetadataTest.java | 5 +- .../accumulo/tserver/TservConstraintEnvTest.java | 3 +- .../shell/commands/HistoryCommandTest.java | 4 +- .../apache/accumulo/test/ConditionalWriterIT.java | 8 +- .../org/apache/accumulo/test/InMemoryMapIT.java| 3 +- .../apache/accumulo/test/MultiTableRecoveryIT.java | 3 +- .../org/apache/accumulo/test/VerifyIngest.java | 6 +- .../accumulo/test/functional/AuthsIterator.java| 4 +- .../accumulo/test/functional/CombinerIT.java | 3 +- .../accumulo/test/functional/KerberosIT.java | 3 +- .../test/functional/WatchTheWatchCountIT.java | 5 +- .../accumulo/test/metrics/TestStatsDSink.java | 4 +- 53 files changed, 266 insertions(+), 208 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit cbc2c16b8966a5da765f9619c00eae630e71ff58 Merge: d1456fcaa4 f1dc4dc05c Author: Dom Garguilo AuthorDate: Fri Aug 9 11:43:32 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../java/org/apache/accumulo/core/util/Timer.java | 25 .../org/apache/accumulo/core/util/TimerTest.java | 34 ++ 2 files changed, 59 insertions(+)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. ddanielr pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit b674b62dd9380f1dd32e9a93f97cbaefa4a049de Merge: 0485e42f34 bab64ca7cf Author: Daniel Roberts AuthorDate: Tue Jul 23 20:39:59 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../manager/ManagerClientServiceHandler.java | 7 +++- .../org/apache/accumulo/test/shell/ShellIT.java| 49 ++ 2 files changed, 54 insertions(+), 2 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit f33ee9dc3c669acdd4e5b3a3b7dcd6cc682a8f12 Merge: d0b72f5465 5ab0bd8273 Author: Dom Garguilo AuthorDate: Tue Jul 9 16:58:25 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../org/apache/accumulo/core/conf/Property.java| 4 +- .../accumulo/core/metrics/MetricsProducer.java | 16 +++ .../spi/balancer/HostRegexTableLoadBalancer.java | 3 +- .../org/apache/accumulo/server/AbstractServer.java | 22 ++ .../accumulo/server/metrics/ProcessMetrics.java| 18 .../org/apache/accumulo/compactor/Compactor.java | 8 .../org/apache/accumulo/tserver/ScanServer.java| 6 +-- .../compaction/ExternalCompactionProgressIT.java | 29 ++--- .../test/functional/IdleProcessMetricsIT.java | 50 ++ .../apache/accumulo/test/metrics/MetricsIT.java| 3 +- 10 files changed, 71 insertions(+), 88 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java index 933c651297,ee6eb6e891..08d8bc6514 --- a/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java +++ b/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java @@@ -652,20 -594,8 +651,19 @@@ public interface MetricsProducer String METRICS_COMPACTOR_PREFIX = "accumulo.compactor."; String METRICS_COMPACTOR_MAJC_STUCK = METRICS_COMPACTOR_PREFIX + "majc.stuck"; + String METRICS_COMPACTOR_QUEUE_PREFIX = METRICS_COMPACTOR_PREFIX + "queue."; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUES = METRICS_COMPACTOR_QUEUE_PREFIX + "count"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_LENGTH = METRICS_COMPACTOR_QUEUE_PREFIX + "length"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_DEQUEUED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.dequeued"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_QUEUED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.queued"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_REJECTED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.rejected"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_PRIORITY = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.priority"; String METRICS_COMPACTOR_ENTRIES_READ = METRICS_COMPACTOR_PREFIX + "entries.read"; String METRICS_COMPACTOR_ENTRIES_WRITTEN = METRICS_COMPACTOR_PREFIX + "entries.written"; - String METRICS_COMPACTOR_BUSY = METRICS_COMPACTOR_PREFIX + "busy"; String METRICS_FATE_PREFIX = "accumulo.fate."; String METRICS_FATE_TYPE_IN_PROGRESS = METRICS_FATE_PREFIX + "ops.in.progress.by.type"; diff --cc server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java index 17e8e42197,69de547e0b..e110e4d5a8 --- a/server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java +++ b/server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java @@@ -18,6 -18,9 +18,8 @@@ */ package org.apache.accumulo.server.metrics; -import java.util.List; + import java.util.concurrent.atomic.AtomicInteger; + import org.apache.accumulo.core.metrics.MetricsProducer; import org.apache.accumulo.server.ServerContext; @@@ -35,14 -38,8 +37,8 @@@ public class ProcessMetrics implements @Override public void registerMetrics(MeterRegistry registry) { -registry.gauge(METRICS_LOW_MEMORY, List.of(), this, this::lowMemDetected); +registry.gauge(METRICS_LOW_MEMORY, this, this::lowMemDetected); - idleCounter = registry.counter(METRICS_SERVER_IDLE); - } - - public void incrementIdleCounter() { - if (idleCounter != null) { - idleCounter.increment(); - } + registry.gauge(METRICS_SERVER_IDLE, isIdle, AtomicInteger::get); } private int lowMemDetected(ProcessMetrics processMetrics) { diff --cc test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java index 72c0fbe560,fb8e2d4ccc..f76b816d73 --- a/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java +++ b/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java @@@ -35,9 -36,6 +35,8 @@@ import java.util.EnumSet import java.util.HashMap; import java.util.List; import java.util.Map; - import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@@ -146,12 -216,10 +145,11 @@@ public class ExternalCompactionProgress final AtomicLong totalEntriesRead = new AtomicLong(0); final AtomicLong totalEntriesWritten = new AtomicLong(0); -final long expectedEntriesRead = 9216; -final long expectedEntriesWritten = 4096; +final ConcurrentHashMap compactorBusy =
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. jmark99 pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit d8cb61a73f5767ba5fd0a22f3c9eb55cf4a73d6d Merge: 46d8c0b71d c6e31e2cc2 Author: Mark Owens AuthorDate: Mon Jun 24 17:33:44 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/core/data/ConditionalMutation.java| 46 +++ .../core/data/ConditionalMutationTest.java | 92 ++ 2 files changed, 138 insertions(+)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 8c99aff2d672e3fe0120ca4cfcae0058ec2e7dad Merge: 063d12057a b63afacfa6 Author: Dom Garguilo AuthorDate: Mon Jun 17 15:01:46 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../util/compaction/RunningCompactionInfo.java | 21 ++--- .../compaction/thrift/TCompactionStatusUpdate.java | 104 - core/src/main/thrift/compaction-coordinator.thrift | 1 + .../core/metadata/schema/TabletMetadataTest.java | 27 ++ .../accumulo/server/compaction/CompactionInfo.java | 3 +- .../accumulo/server/compaction/FileCompactor.java | 17 +++- .../org/apache/accumulo/compactor/Compactor.java | 37 ++-- .../shell/commands/ActiveCompactionHelper.java | 30 +++--- .../shell/commands/ListCompactionsCommand.java | 2 +- .../compaction/ExternalCompactionProgressIT.java | 10 +- .../compaction/ExternalDoNothingCompactor.java | 6 ++ 11 files changed, 203 insertions(+), 55 deletions(-) diff --cc core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java index d22925afc3,586f697ae8..9f4ba14def --- a/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java +++ b/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java @@@ -22,20 -22,18 +22,21 @@@ import static java.util.stream.Collecto import static org.apache.accumulo.core.metadata.StoredTabletFile.serialize; import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.MergedColumnFamily.MERGED_COLUMN; import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.MergedColumnFamily.MERGED_VALUE; -import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_COLUMN; import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN; import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_COLUMN; +import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_NONCE_COLUMN; import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.TIME_COLUMN; import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.SuspendLocationColumn.SUSPEND_COLUMN; -import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.TabletColumnFamily.OLD_PREV_ROW_COLUMN; -import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.TabletColumnFamily.SPLIT_RATIO_COLUMN; +import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.AVAILABILITY; + import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.DIR; +import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.ECOMP; +import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.HOSTING_REQUESTED; import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.LAST; import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.LOCATION; -import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.PREV_ROW; +import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.MERGED; import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.SUSPEND; +import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.UNSPLITTABLE; +import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.USER_COMPACTION_REQUESTED; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; @@@ -431,144 -409,38 +432,170 @@@ public class TabletMetadataTest assertEquals(1, tm2.getScans().size()); assertThrows(UnsupportedOperationException.class, () -> tm2.getScans().add(stf)); assertEquals(1, tm2.getLoaded().size()); -assertThrows(UnsupportedOperationException.class, () -> tm2.getLoaded().put(stf, 0L)); +assertThrows(UnsupportedOperationException.class, +() -> tm2.getLoaded().put(stf, FateId.from(FateInstanceType.USER, UUID.randomUUID(; assertEquals(1, tm2.getKeyValues().size()); assertThrows(UnsupportedOperationException.class, () -> tm2.getKeyValues().remove(null)); +assertEquals(1, tm2.getCompacted().size()); +assertThrows(UnsupportedOperationException.class, +() -> tm2.getCompacted().add(FateId.from(FateInstanceType.USER, UUID.randomUUID(; +assertEquals(1, tm2.getUserCompactionsRequested(
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
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 e9a4d86e6c94f4a7627ae66269834a9e956280a0 Merge: b0af344d9a 5256e3462d Author: Keith Turner AuthorDate: Sat Jun 8 15:15:25 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../java/org/apache/accumulo/test/PrintInfoIT.java | 34 +- 1 file changed, 13 insertions(+), 21 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 69a62fa55007dd6f9f6181f6b9a5f855f91e6937 Merge: f4a857e1fa 000855d4c1 Author: Dom Garguilo AuthorDate: Thu Jun 6 12:36:02 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity # Conflicts: # core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java # test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java .../accumulo/core/metrics/MetricsProducer.java | 27 +++- .../org/apache/accumulo/compactor/Compactor.java | 8 +++ .../compaction/ExternalCompactionProgressIT.java | 81 +- 3 files changed, 84 insertions(+), 32 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java index 8e0c0a8d58,0f8e607ee6..933c651297 --- a/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java +++ b/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java @@@ -61,46 -62,27 +62,69 @@@ import io.micrometer.core.instrument.Me * * N/A * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUES} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_LENGTH} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_PRIORITY} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_QUEUED} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_DEQUEUED} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_REJECTED} + * Gauge + * + * + * ++ * N/A ++ * N/A + * {@value #METRICS_COMPACTOR_ENTRIES_READ} + * FunctionCounter + * Number of entries read by all threads performing compactions + * + * + * N/A + * N/A + * {@value #METRICS_COMPACTOR_ENTRIES_WRITTEN} + * FunctionCounter + * Number of entries written by all threads performing compactions + * + * + * N/A + * N/A + * {@value #METRICS_COMPACTOR_BUSY} + * Gauge + * Indicates if the compactor is busy or not. The value will be 0 when idle and 1 when + * busy. + * + * + * * currentFateOps * Gauge * {@value #METRICS_FATE_OPS} @@@ -624,23 -591,11 +648,24 @@@ public interface MetricsProducer Logger LOG = LoggerFactory.getLogger(MetricsProducer.class); String METRICS_LOW_MEMORY = "accumulo.detected.low.memory"; + String METRICS_SERVER_IDLE = "accumulo.server.idle"; + String METRICS_COMPACTOR_PREFIX = "accumulo.compactor."; String METRICS_COMPACTOR_MAJC_STUCK = METRICS_COMPACTOR_PREFIX + "majc.stuck"; + String METRICS_COMPACTOR_QUEUE_PREFIX = METRICS_COMPACTOR_PREFIX + "queue."; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUES = METRICS_COMPACTOR_QUEUE_PREFIX + "count"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_LENGTH = METRICS_COMPACTOR_QUEUE_PREFIX + "length"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_DEQUEUED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.dequeued"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_QUEUED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.queued"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_REJECTED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.rejected"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_PRIORITY = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.priority"; String METRICS_COMPACTOR_ENTRIES_READ = METRICS_COMPACTOR_PREFIX + "entries.read"; String METRICS_COMPACTOR_ENTRIES_WRITTEN = METRICS_COMPACTOR_PREFIX + "entries.written"; + String METRICS_COMPACTOR_BUSY = METRICS_COMPACTOR_PREFIX + "busy"; String METRICS_FATE_PREFIX = "accumulo.fate."; String METRICS_FATE_TYPE_IN_PROGRESS = METRICS_FATE_PREFIX + "ops.in.progress.by.type"; diff --cc test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java index b9b41e0833,a298ae22cd..f7fefbc1f4 --- a/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java +++ b/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java @@@ -34,11 -34,13 +34,12 @@@ import java.util.EnumSet import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; + import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; -import org.apache.accumulo.compactor.Compactor; -import org.apache.accumulo.coordinator.CompactionCoordinator; import org.apache.accumulo.core.client.Accumulo; import org.apache.accumulo.core.client.AccumuloClient; import org.apache.accumulo.core.client.IteratorSetting; @@@ -125,17 -123,23
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. jmark99 pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 93aac1a800c889a060bc5ce4dad41aecc16145c4 Merge: 01fa10be63 9ec0087069 Author: Mark Owens AuthorDate: Wed Jun 5 15:08:41 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../apache/accumulo/core/file/rfile/PrintInfo.java | 2 +- .../accumulo/core/summary/SummaryReader.java | 11 +- .../java/org/apache/accumulo/test/PrintInfoIT.java | 202 + .../resources/org/apache/accumulo/test/ver_7.rf| Bin 0 -> 14557 bytes 4 files changed, 213 insertions(+), 2 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. domgarguilo pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 32bbcbf351da18f590ce99dda64f305e904f1d5e Merge: 3fcab5e18a 627ed8 Author: Dom Garguilo AuthorDate: Thu May 30 11:45:20 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/core/metrics/MetricsProducer.java | 2 + .../accumulo/server/compaction/FileCompactor.java | 88 +-- .../org/apache/accumulo/compactor/Compactor.java | 27 - .../tserver/metrics/TabletServerMetrics.java | 24 .../compaction/ExternalCompactionProgressIT.java | 123 - 5 files changed, 244 insertions(+), 20 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java index 0ed24a24b4,ca3d90ccf1..8e0c0a8d58 --- a/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java +++ b/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java @@@ -624,21 -567,10 +624,23 @@@ public interface MetricsProducer Logger LOG = LoggerFactory.getLogger(MetricsProducer.class); String METRICS_LOW_MEMORY = "accumulo.detected.low.memory"; + String METRICS_SERVER_IDLE = "accumulo.server.idle"; + String METRICS_COMPACTOR_PREFIX = "accumulo.compactor."; String METRICS_COMPACTOR_MAJC_STUCK = METRICS_COMPACTOR_PREFIX + "majc.stuck"; + String METRICS_COMPACTOR_QUEUE_PREFIX = METRICS_COMPACTOR_PREFIX + "queue."; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUES = METRICS_COMPACTOR_QUEUE_PREFIX + "count"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_LENGTH = METRICS_COMPACTOR_QUEUE_PREFIX + "length"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_DEQUEUED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.dequeued"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_QUEUED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.queued"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_REJECTED = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.rejected"; + String METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_PRIORITY = + METRICS_COMPACTOR_QUEUE_PREFIX + "jobs.priority"; + String METRICS_COMPACTOR_ENTRIES_READ = METRICS_COMPACTOR_PREFIX + "entries.read"; + String METRICS_COMPACTOR_ENTRIES_WRITTEN = METRICS_COMPACTOR_PREFIX + "entries.written"; String METRICS_FATE_PREFIX = "accumulo.fate."; String METRICS_FATE_TYPE_IN_PROGRESS = METRICS_FATE_PREFIX + "ops.in.progress.by.type"; diff --cc server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java index 41ff9f5f51,cebdce684d..4d47b63053 --- a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java +++ b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java @@@ -63,6 -65,8 +65,7 @@@ import org.apache.accumulo.core.tablets import org.apache.accumulo.core.trace.TraceUtil; import org.apache.accumulo.core.util.LocalityGroupUtil; import org.apache.accumulo.core.util.LocalityGroupUtil.LocalityGroupConfigurationError; -import org.apache.accumulo.core.util.ratelimit.RateLimiter; + import org.apache.accumulo.core.util.time.NanoTime; import org.apache.accumulo.server.ServerContext; import org.apache.accumulo.server.fs.VolumeManager; import org.apache.accumulo.server.iterators.SystemIteratorEnvironment; diff --cc server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java index 2922a3999e,b44fcbbca1..4c5357e35a --- a/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java +++ b/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java @@@ -149,13 -150,17 +150,21 @@@ public class Compactor extends Abstract protected Compactor(ConfigOpts opts, String[] args) { super("compactor", opts, args); -queueName = super.getConfiguration().get(Property.COMPACTOR_QUEUE_NAME); + } + + @Override + protected String getResourceGroupPropertyValue(SiteConfiguration conf) { +return conf.get(Property.COMPACTOR_GROUP_NAME); } + private long getTotalEntriesRead() { + return FileCompactor.getTotalEntriesRead(); + } + + private long getTotalEntriesWritten() { + return FileCompactor.getTotalEntriesWritten(); + } + @Override public void registerMetrics(MeterRegistry registry) { super.registerMetrics(registry); diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java index 30c8594f6c,70b0c4980b..847c39f572 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java @@@ -32,9 -36,28 +36,29 @@@ public class TabletServerMetrics implem util = new TabletServerMetricsUtil(tserver); } + private long getTotalEntriesRead() { + return FileCompactor.getTotalEnt
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit f9dabfc2501b893695bb04abf7d387f696851b98 Merge: 14efea2e75 4a5d8da7a5 Author: Ed Coleman AuthorDate: Fri May 24 15:23:38 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/core/metrics/MetricsProducer.java | 8 +++-- .../org/apache/accumulo/tserver/ScanServer.java| 15 + .../apache/accumulo/tserver/ScanServerMetrics.java | 38 ++ .../apache/accumulo/test/metrics/MetricsIT.java| 3 +- 4 files changed, 47 insertions(+), 17 deletions(-) diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java index f9aed7e2cf,616800168e..323117c0c3 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java @@@ -90,8 -89,8 +90,9 @@@ import org.apache.accumulo.core.tablets import org.apache.accumulo.core.tabletserver.thrift.NotServingTabletException; import org.apache.accumulo.core.util.Halt; import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.core.util.cache.Caches.CacheName; import org.apache.accumulo.core.util.threads.ThreadPools; + import org.apache.accumulo.core.util.time.NanoTime; import org.apache.accumulo.server.AbstractServer; import org.apache.accumulo.server.ServerContext; import org.apache.accumulo.server.client.ClientServiceHandler; diff --cc test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java index 53f981,0b76970d6d..402ed1ff50 --- a/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java +++ b/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java @@@ -103,13 -96,13 +103,14 @@@ public class MetricsIT extends Configur @Test public void confirmMetricsPublished() throws Exception { -doWorkToGenerateMetrics(); -cluster.stop(); - Set unexpectedMetrics = Set.of(METRICS_COMPACTOR_MAJC_STUCK, METRICS_SCAN_YIELDS); -Set flakyMetrics = Set.of(METRICS_FATE_TYPE_IN_PROGRESS, METRICS_GC_WAL_ERRORS, -METRICS_SCAN_RESERVATION_TOTAL_TIMER, METRICS_SCAN_BUSY_TIMEOUT_COUNTER, -METRICS_SCAN_TABLET_METADATA_CACHE); +Set flakyMetrics = Set.of(METRICS_GC_WAL_ERRORS, METRICS_FATE_TYPE_IN_PROGRESS, +METRICS_TSERVER_TABLETS_ONLINE_ONDEMAND, METRICS_TSERVER_TABLETS_ONDEMAND_UNLOADED_FOR_MEM, +METRICS_COMPACTOR_MAJC_STUCK, METRICS_MANAGER_ROOT_TGW_ERRORS, +METRICS_MANAGER_META_TGW_ERRORS, METRICS_MANAGER_USER_TGW_ERRORS, +METRICS_SCAN_TABLET_METADATA_CACHE, METRICS_SCAN_BUSY_TIMEOUT_COUNTER, - METRICS_SCAN_RESERVATION_TIMER, METRICS_SERVER_IDLE); ++METRICS_SCAN_RESERVATION_TOTAL_TIMER, METRICS_SCAN_RESERVATION_WRITEOUT_TIMER, ++METRICS_SERVER_IDLE); Map expectedMetricNames = this.getMetricFields(); flakyMetrics.forEach(expectedMetricNames::remove); // might not see these
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
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 cdaac866da85449227864caabc52fc00ee83fe56 Merge: ef34a4890a 861d28b64b Author: Keith Turner AuthorDate: Fri May 10 18:20:33 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../java/org/apache/accumulo/core/client/rfile/RFileScanner.java | 5 + .../accumulo/core/file/blockfile/cache/lru/LruBlockCache.java | 5 + .../core/file/blockfile/cache/tinylfu/TinyLfuBlockCache.java | 5 + .../java/org/apache/accumulo/core/metrics/MetricsProducer.java| 4 .../main/java/org/apache/accumulo/core/spi/cache/BlockCache.java | 7 +++ .../main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java | 8 .../java/org/apache/accumulo/test/manager/SuspendedTabletsIT.java | 3 +++ 7 files changed, 37 insertions(+)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit ef34a4890a76b592a805947d7c8f7d99a0363952 Merge: 5e4ec67ac0 8c485e362d Author: Ed Coleman AuthorDate: Fri May 10 21:34:39 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../java/org/apache/accumulo/core/metrics/MetricsProducer.java | 7 --- .../java/org/apache/accumulo/manager/metrics/fate/FateMetrics.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java index 6f82281257,abfdfc9b5a..bdc695e787 --- a/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java +++ b/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java @@@ -59,53 -59,12 +59,54 @@@ import io.micrometer.core.instrument.Me * * * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUES} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_LENGTH} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_PRIORITY} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_QUEUED} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_DEQUEUED} + * Gauge + * + * + * + * N/A + * N/A + * {@link #METRICS_COMPACTOR_JOB_PRIORITY_QUEUE_JOBS_REJECTED} + * Gauge + * + * + * * currentFateOps * Gauge - * {@value #METRICS_FATE_TOTAL_IN_PROGRESS} + * {@value #METRICS_FATE_OPS} * Gauge - * + * Was previously named "accumulo.fate.ops.in.progress". Changed to better reflect what the + * gauge is actually tracking which is all the current fate ops in any state. * * * FateTxOpType_{name} diff --cc server/manager/src/main/java/org/apache/accumulo/manager/metrics/fate/FateMetrics.java index 1664dd8d93,2f66aef256..e4e5150671 --- a/server/manager/src/main/java/org/apache/accumulo/manager/metrics/fate/FateMetrics.java +++ b/server/manager/src/main/java/org/apache/accumulo/manager/metrics/fate/FateMetrics.java @@@ -126,29 -128,31 +126,29 @@@ public class FateMetrics implements Met @Override public void registerMetrics(final MeterRegistry registry) { - registry.gauge(METRICS_FATE_TOTAL_IN_PROGRESS, totalCurrentOpsGauge); -totalCurrentOpsGauge = registry.gauge(METRICS_FATE_OPS, new AtomicLong(0)); -totalOpsGauge = registry.gauge(METRICS_FATE_OPS_ACTIVITY, new AtomicLong(0)); -fateErrorsGauge = registry.gauge(METRICS_FATE_ERRORS, List.of(Tag.of("type", "zk.connection")), -new AtomicLong(0)); -newTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.NEW.name().toLowerCase())), -new AtomicLong(0)); -submittedTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.SUBMITTED.name().toLowerCase())), -new AtomicLong(0)); -inProgressTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.IN_PROGRESS.name().toLowerCase())), -new AtomicLong(0)); -failedInProgressTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.FAILED_IN_PROGRESS.name().toLowerCase())), -new AtomicLong(0)); -failedTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.FAILED.name().toLowerCase())), -new AtomicLong(0)); -successfulTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.SUCCESSFUL.name().toLowerCase())), -new AtomicLong(0)); -unknownTxGauge = registry.gauge(METRICS_FATE_TX, -List.of(Tag.of("state", ReadOnlyTStore.TStatus.UNKNOWN.name().toLowerCase())), -new AtomicLong(0)); ++registry.gauge(METRICS_FATE_OPS, totalCurrentOpsGauge); +registry.gauge(METRICS_FATE_OPS_ACTIVITY, totalOpsGauge); +registry.gauge(METRICS_FATE_ERRORS, List.of(Tag.of("type", "zk.connection")), fateErrorsGauge); +registry.gauge(METRICS_FATE_TX, +List.of(Tag.of("state", ReadOnlyFateStore.TStatus.NEW.name().toLowerCase())), newTxGauge); +registry.gauge(METRICS_FATE_TX, +List.of(Tag.of("state", ReadOnlyFateStore.TStatus.SUBMITTED.name().toLowerCase())), +submittedTxGauge); +registry.gauge(METRICS_FATE_TX, +List.of(Tag.of("state", ReadOnlyFateStore.TStatus.IN_PROGRESS.name().toLowerCase())), +inProgressTxGauge); +registry.gauge(METRICS_FATE_TX, +List.of(Tag.of("state", ReadOnlyFateStore.TStatus.FAILED_IN_PROGRESS.name().toLowerCase())), +failedInProgressTxGauge); +registry.gauge(METRICS_FATE_TX, +List.of(Tag.of("st
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 4542108269fb8da4a523f1e5513974bc45ee13bd Merge: b32a32cb58 f4c1f24658 Author: Ed Coleman AuthorDate: Wed May 8 18:01:13 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/core/metrics/MetricsProducer.java | 9 .../apache/accumulo/tserver/BlockCacheMetrics.java | 61 ++ .../org/apache/accumulo/tserver/ScanServer.java| 18 +++ .../org/apache/accumulo/tserver/TabletServer.java | 5 +- 4 files changed, 82 insertions(+), 11 deletions(-) diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java index 7f325c39fa,0590fb8aa2..8aa8f65f4b --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java @@@ -166,7 -181,9 +166,8 @@@ public class TabletServer extends Abstr TabletServerUpdateMetrics updateMetrics; TabletServerScanMetrics scanMetrics; TabletServerMinCMetrics mincMetrics; - CompactionExecutorsMetrics ceMetrics; PausedCompactionMetrics pausedMetrics; + BlockCacheMetrics blockCacheMetrics; @Override public TabletServerScanMetrics getScanMetrics() { @@@ -582,14 -712,21 +583,16 @@@ updateMetrics = new TabletServerUpdateMetrics(); scanMetrics = new TabletServerScanMetrics(); mincMetrics = new TabletServerMinCMetrics(); -ceMetrics = new CompactionExecutorsMetrics(); pausedMetrics = new PausedCompactionMetrics(); + blockCacheMetrics = new BlockCacheMetrics(this.resourceManager.getIndexCache(), + this.resourceManager.getDataCache(), this.resourceManager.getSummaryCache()); metricsInfo.addMetricsProducers(this, metrics, updateMetrics, scanMetrics, mincMetrics, - pausedMetrics); -ceMetrics, pausedMetrics, blockCacheMetrics); ++pausedMetrics, blockCacheMetrics); metricsInfo.init(); -this.compactionManager = new CompactionManager(() -> Iterators -.transform(onlineTablets.snapshot().values().iterator(), Tablet::asCompactable), -getContext(), ceMetrics); -compactionManager.start(); - announceExistence(); +getContext().setServiceLock(tabletServerLock); try { walMarker.initWalMarker(getTabletSession());
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit c6f7c91d829c6b30ac28f3f18f705913f611e25c Merge: 0d40533307 d46ef7cdc6 Author: Ed Coleman AuthorDate: Mon May 6 21:40:51 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../server/metrics/NoOpDistributionSummary.java| 83 ++ .../accumulo/server/metrics/ThriftMetrics.java | 4 +- .../metrics/NoOpDistributionSummaryTest.java} | 38 -- .../accumulo/server/metrics/ThriftMetricsTest.java | 62 .../tserver/metrics/TabletServerScanMetrics.java | 5 +- .../tserver/metrics/TabletServerUpdateMetrics.java | 3 +- .../accumulo/test/functional/ZombieTServer.java| 10 +-- 7 files changed, 170 insertions(+), 35 deletions(-) diff --cc test/src/main/java/org/apache/accumulo/test/functional/ZombieTServer.java index bc10568f7c,dce3d5dda1..38e93abb4c --- a/test/src/main/java/org/apache/accumulo/test/functional/ZombieTServer.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/ZombieTServer.java @@@ -143,6 -140,10 +138,11 @@@ public class ZombieTServer ServiceLock zlock = new ServiceLock(zoo.getZooKeeper(), zLockPath, UUID.randomUUID()); + MetricsInfo metricsInfo = context.getMetricsInfo(); -metricsInfo.addServiceTags("zombie.server", serverPort.address); ++metricsInfo.addServiceTags("zombie.server", serverPort.address, ++Constants.DEFAULT_RESOURCE_GROUP_NAME); + metricsInfo.init(); + LockWatcher lw = new LockWatcher() { @SuppressFBWarnings(value = "DM_EXIT",
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0d40533307ab421960fbcc950892a72e72437031 Merge: 82b80d0d62 a41366bbd2 Author: Ed Coleman AuthorDate: Mon May 6 20:16:17 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../core/clientImpl/TabletServerBatchReaderIterator.java | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/clientImpl/TabletServerBatchReaderIterator.java index b95f256786,040a765b1f..3828b2c799 --- a/core/src/main/java/org/apache/accumulo/core/clientImpl/TabletServerBatchReaderIterator.java +++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/TabletServerBatchReaderIterator.java @@@ -716,40 -650,26 +716,41 @@@ public class TabletServerBatchReaderIte if (serverToUse == null) { // no scan server was given so use the tablet server serverToUse = extentToTserverMap.get(extent); -log.trace("For tablet {} using hints {} scan server selector chose tablet_server", tabletId, -options.executionHints); +if (serverToUse != null) { - log.trace("For tablet {} scan server selector chose tablet_server {}", tabletId, - serverToUse); ++ log.trace("For tablet {} using hints {} scan server selector chose tablet_server", ++ tabletId, options.executionHints); +} else { + log.trace( - "For tablet {} scan server selector chose tablet_server, but tablet is not hosted", - tabletId); ++ "For tablet {} using hints {} scan server selector chose tablet_server, but tablet is not hosted", ++ tabletId, options.executionHints); +} } else { - log.trace("For tablet {} scan server selector chose scan_server:{}", tabletId, serverToUse); + log.trace("For tablet {} using hints {} scan server selector chose scan_server:{}", + tabletId, options.executionHints, serverToUse); } - var rangeMap = binnedRanges2.computeIfAbsent(serverToUse, k -> new HashMap<>()); - List ranges = extentToRangesMap.get(extent); - rangeMap.put(extent, ranges); + if (serverToUse != null) { +var rangeMap = binnedRanges.computeIfAbsent(serverToUse, k -> new HashMap<>()); +List extentRanges = extentToRangesMap.get(extent); +rangeMap.put(extent, extentRanges); + +var server = serverToUse; +reporters.computeIfAbsent(serverToUse, k -> scanAttempts.createReporter(server, tabletId)); + } else { +failures.addAll(extentToRangesMap.get(extent)); + } +} - var server = serverToUse; - reporters.computeIfAbsent(serverToUse, k -> scanAttempts.createReporter(server, tabletId)); +if (!failures.isEmpty()) { + // if there are failures at this point its because tablets are not hosted, so lets attempt to + // get them hosted + clientTabletCache.findTablets(context, ranges, (cachedTablet, range) -> {}, + LocationNeed.REQUIRED); + return new ScanServerData(failures); } -ScanServerData ssd = new ScanServerData(); +ScanServerData ssd = new ScanServerData(actions, reporters); -ssd.binnedRanges = binnedRanges2; -ssd.actions = actions; -ssd.reporters = reporters; log.trace("Scan server selector chose delay:{} busyTimeout:{}", actions.getDelay(), actions.getBusyTimeout()); return ssd;
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 82b80d0d62bd4290ac85a857b566d6cc0f864367 Merge: a198c1fbc4 7f58fc03b2 Author: Ed Coleman AuthorDate: Mon May 6 17:29:28 2024 + Merge remote-tracking branch 'upstream/main' into elasticity includes multiple PRs: - 4526 bouncy castle version bump - 4522 update scan server metrics for file reservations - 4520 log hints to select a scan server .../accumulo/core/metrics/MetricsProducer.java | 108 +++-- pom.xml| 2 +- .../accumulo/manager/TabletGroupWatcher.java | 18 ++-- .../java/org/apache/accumulo/monitor/Monitor.java | 6 +- .../org/apache/accumulo/tserver/ScanServer.java| 53 -- .../apache/accumulo/tserver/ScanServerMetrics.java | 59 +++ .../accumulo/tserver/ThriftScanClientHandler.java | 4 +- .../tserver/metrics/TabletServerScanMetrics.java | 20 ++-- .../apache/accumulo/tserver/ScanServerTest.java| 9 ++ .../apache/accumulo/test/metrics/MetricsIT.java| 8 +- 10 files changed, 204 insertions(+), 83 deletions(-) diff --cc server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java index 18682789c5,c3a77f2297..060411fcbf --- a/server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java +++ b/server/manager/src/main/java/org/apache/accumulo/manager/TabletGroupWatcher.java @@@ -972,43 -1449,20 +972,49 @@@ abstract class TabletGroupWatcher exten } tLists.assignments.addAll(tLists.assigned); for (Assignment a : tLists.assignments) { - TServerConnection client = manager.tserverSet.getConnection(a.server); - if (client != null) { - client.assignTablet(manager.managerLock, a.tablet); - } else { - Manager.log.warn("Could not connect to server {}", a.server); + try { + TServerConnection client = manager.tserverSet.getConnection(a.server); + if (client != null) { + client.assignTablet(manager.managerLock, a.tablet); + manager.assignedTablet(a.tablet); + } else { + Manager.log.warn("Could not connect to server {} for assignment of {}", a.server, + a.tablet); + } + } catch (TException tException) { + Manager.log.warn("Could not connect to server {} for assignment of {}", a.server, a.tablet, + tException); } - manager.assignedTablet(a.tablet); } + +replaceVolumes(tLists.volumeReplacements); + } + + private void replaceVolumes(List volumeReplacementsList) { +try (var tabletsMutator = manager.getContext().getAmple().conditionallyMutateTablets()) { + for (VolumeUtil.VolumeReplacements vr : volumeReplacementsList) { +var tabletMutator = + tabletsMutator.mutateTablet(vr.tabletMeta.getExtent()).requireAbsentOperation() +.requireAbsentLocation().requireSame(vr.tabletMeta, FILES, LOGS); +vr.logsToRemove.forEach(tabletMutator::deleteWal); +vr.logsToAdd.forEach(tabletMutator::putWal); + +vr.filesToRemove.forEach(tabletMutator::deleteFile); +vr.filesToAdd.forEach(tabletMutator::putFile); + +tabletMutator.submit( +tm -> tm.getLogs().containsAll(vr.logsToAdd) && tm.getFiles().containsAll(vr.filesToAdd + .keySet().stream().map(ReferencedTabletFile::insert).collect(Collectors.toSet(; + } + + tabletsMutator.process().forEach((extent, result) -> { +if (result.getStatus() == Ample.ConditionalResult.Status.REJECTED) { + // log that failure happened, should try again later + LOG.debug("Failed to update volumes for tablet {}", extent); +} + }); +} + } private static void markDeadServerLogsAsClosed(WalStateManager mgr, diff --cc server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java index 51be4e13d8,10ccf19c6c..1fb3a66108 --- a/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java +++ b/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java @@@ -486,11 -489,11 +486,11 @@@ public class Monitor extends AbstractSe log.error("Unable to get hostname", e); } } - log.debug("Using {} to advertise monitor location in ZooKeeper", advertiseHost); + HostAndPort monitorHostAndPort = HostAndPort.fromParts(advertiseHost, livePort); + log.debug("Using {} to advertise monitor location in ZooKeeper", monitorHostAndPort); MetricsInfo metricsInfo = getContext().getMetricsInfo(); - metricsInfo.addServiceTags(getApplicationName(), HostAndPort.fromParts(advertiseHost, livePort), - getResourceGroup()); -metricsInfo.addServiceTags(getApplicationName(), monitorHostAndPort); ++
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit a198c1fbc45dbe6203bc662cf667010eb8f8d50d Merge: 76fffdedf3 09adb11491 Author: Ed Coleman AuthorDate: Mon Apr 29 19:32:29 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/test/compaction/ExternalCompactionMetricsIT.java | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 13bb871ac52613d5ca42127b6c36b3e36e23ccb0 Merge: 03d3a6d911 252b46bab3 Author: Ed Coleman AuthorDate: Mon Apr 29 16:54:34 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../org/apache/accumulo/tserver/metrics/TabletServerMetricsUtil.java| 2 -- 1 file changed, 2 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 03d3a6d911f5711e95d5ebc990821bd2a69a85e9 Merge: 07bf1bc6fd e682a2f229 Author: Ed AuthorDate: Sat Apr 27 16:40:04 2024 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../java/org/apache/accumulo/core/metrics/MetricsProducer.java | 4 ++-- .../monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java | 1 + .../src/main/java/org/apache/accumulo/tserver/TabletServer.java| 2 +- .../org/apache/accumulo/test/functional/MemoryStarvedScanIT.java | 7 +-- .../java/org/apache/accumulo/test/functional/ZombieTServer.java| 7 +++ 5 files changed, 16 insertions(+), 5 deletions(-) diff --cc server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java index 0d99ea3f0f,6c07e9bb32..74ec7b89a5 --- a/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java +++ b/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java @@@ -488,8 -492,9 +488,9 @@@ public class Monitor extends AbstractSe log.debug("Using {} to advertise monitor location in ZooKeeper", advertiseHost); MetricsInfo metricsInfo = getContext().getMetricsInfo(); -metricsInfo.addServiceTags(getApplicationName(), -HostAndPort.fromParts(advertiseHost, livePort)); +metricsInfo.addServiceTags(getApplicationName(), HostAndPort.fromParts(advertiseHost, livePort), +getResourceGroup()); + metricsInfo.addMetricsProducers(this); metricsInfo.init(); try { diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java index 9947b5e48b,409d1ecada..93f3e58def --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java @@@ -582,12 -711,18 +582,12 @@@ public class TabletServer extends Abstr updateMetrics = new TabletServerUpdateMetrics(); scanMetrics = new TabletServerScanMetrics(); mincMetrics = new TabletServerMinCMetrics(); -ceMetrics = new CompactionExecutorsMetrics(); pausedMetrics = new PausedCompactionMetrics(); - metricsInfo.addMetricsProducers(metrics, updateMetrics, scanMetrics, mincMetrics, + metricsInfo.addMetricsProducers(this, metrics, updateMetrics, scanMetrics, mincMetrics, -ceMetrics, pausedMetrics); +pausedMetrics); metricsInfo.init(); -this.compactionManager = new CompactionManager(() -> Iterators -.transform(onlineTablets.snapshot().values().iterator(), Tablet::asCompactable), -getContext(), ceMetrics); -compactionManager.start(); - announceExistence(); try { diff --cc test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java index 0becd57120,d2cb595b3d..0c9b08e0ab --- a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java @@@ -48,14 -43,9 +48,15 @@@ import org.apache.accumulo.core.conf.Pr import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Value; +import org.apache.accumulo.core.fate.zookeeper.ZooCache; import org.apache.accumulo.core.iterators.WrappingIterator; +import org.apache.accumulo.core.lock.ServiceLock; +import org.apache.accumulo.core.lock.ServiceLockData; +import org.apache.accumulo.core.lock.ServiceLockData.ThriftService; import org.apache.accumulo.core.metrics.MetricsProducer; +import org.apache.accumulo.core.rpc.ThriftUtil; +import org.apache.accumulo.core.rpc.clients.ThriftClientTypes; + import org.apache.accumulo.core.spi.metrics.LoggingMeterRegistryFactory; import org.apache.accumulo.harness.MiniClusterConfigurationCallback; import org.apache.accumulo.harness.SharedMiniClusterBase; import org.apache.accumulo.minicluster.MemoryUnit; diff --cc test/src/main/java/org/apache/accumulo/test/functional/ZombieTServer.java index ab90bcf870,d7562f78c1..bc10568f7c --- a/test/src/main/java/org/apache/accumulo/test/functional/ZombieTServer.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/ZombieTServer.java @@@ -129,6 -132,11 +130,12 @@@ public class ZombieTServer HostAndPort.fromParts("0.0.0.0", port)); String addressString = serverPort.address.toString(); + + MetricsInfo metricsInfo = context.getMetricsInfo(); -metricsInfo.addServiceTags("zombie.server", serverPort.address); ++metricsInfo.addServiceTags("zombie.server", serverPort.address, ++Constants.DEFAULT_RESOURCE_GROUP_NAME); + metricsInfo.init(); + var zLockPath = ServiceLock.path(context.getZooKeeperRoot() + Constants.ZTSERVERS + "/" + addressString); ZooReaderWriter zoo = context.getZooReaderWriter();
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 2f4b0372512b3cf677e7a66d4b5ee8482a36a0da Merge: ce83488245 0ad96b1dc0 Author: Ed Coleman AuthorDate: Tue Mar 19 20:31:36 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../accumulo/core/clientImpl/ClientContext.java| 9 +- .../core/clientImpl/ConditionalWriterImpl.java | 2 +- .../core/clientImpl/InstanceOperationsImpl.java| 4 +- .../core/clientImpl/TableOperationsImpl.java | 4 +- .../core/clientImpl/TabletServerBatchReader.java | 5 +- .../core/clientImpl/TabletServerBatchWriter.java | 8 +- .../accumulo/core/clientImpl/bulk/BulkImport.java | 8 +- .../accumulo/core/file/BloomFilterLayer.java | 5 +- .../file/blockfile/cache/lru/LruBlockCache.java| 4 +- .../blockfile/cache/tinylfu/TinyLfuBlockCache.java | 2 +- .../util/compaction/ExternalCompactionUtil.java| 9 +- .../accumulo/core/util/threads/ThreadPools.java| 379 + .../core/file/rfile/MultiThreadedRFileTest.java| 7 +- .../threads/ThreadPoolExecutorBuilderTest.java | 79 + .../server/conf/ServerConfigurationFactory.java| 4 +- .../conf/store/impl/PropCacheCaffeineImpl.java | 7 +- .../server/conf/store/impl/PropStoreWatcher.java | 5 +- .../accumulo/server/fs/VolumeManagerImpl.java | 4 +- .../accumulo/server/problems/ProblemReports.java | 7 +- .../apache/accumulo/server/rpc/TServerUtils.java | 7 +- .../server/util/RemoveEntriesForMissingFiles.java | 4 +- .../server/util/VerifyTabletAssignments.java | 5 +- .../server/conf/store/impl/ReadyMonitorTest.java | 4 +- .../main/java/org/apache/accumulo/gc/GCRun.java| 2 +- .../compaction/coordinator/QueueMetrics.java | 4 +- .../accumulo/manager/metrics/fate/FateMetrics.java | 4 +- .../accumulo/manager/recovery/RecoveryManager.java | 4 +- .../apache/accumulo/manager/split/Splitter.java| 5 +- .../manager/tableOps/bulkVer2/TabletRefresher.java | 2 +- .../manager/upgrade/UpgradeCoordinator.java| 8 +- .../tserver/TabletServerResourceManager.java | 21 +- .../org/apache/accumulo/tserver/log/LogSorter.java | 5 +- .../accumulo/tserver/log/TabletServerLogger.java | 4 +- .../accumulo/test/BalanceWithOfflineTableIT.java | 5 +- .../test/functional/BatchWriterFlushIT.java| 2 +- 35 files changed, 409 insertions(+), 229 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/clientImpl/ConditionalWriterImpl.java index c009e14b14,02aeef6bf6..bf650a077f --- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ConditionalWriterImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ConditionalWriterImpl.java @@@ -372,8 -372,8 +372,8 @@@ public class ConditionalWriterImpl impl this.auths = config.getAuthorizations(); this.ve = new VisibilityEvaluator(config.getAuthorizations()); this.threadPool = context.threadPools().createScheduledExecutorService( - config.getMaxWriteThreads(), this.getClass().getSimpleName(), false); + config.getMaxWriteThreads(), this.getClass().getSimpleName()); -this.locator = new SyncingTabletLocator(context, tableId); +this.locator = new SyncingClientTabletCache(context, tableId); this.serverQueues = new HashMap<>(); this.tableId = tableId; this.tableName = tableName; diff --cc core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java index 297ed70495,6b94fd81cf..2ea43612f1 --- a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java @@@ -448,74 -422,109 +448,76 @@@ public class TableOperationsImpl extend } } - private static class SplitEnv { -private final String tableName; -private final TableId tableId; -private final ExecutorService executor; -private final CountDownLatch latch; -private final AtomicReference exception; - -SplitEnv(String tableName, TableId tableId, ExecutorService executor, CountDownLatch latch, -AtomicReference exception) { - this.tableName = tableName; - this.tableId = tableId; - this.executor = executor; - this.latch = latch; - this.exception = exception; -} - } - - private class SplitTask implements Runnable { - -private List splits; -private SplitEnv env; + /** + * On the server side the fate operation will exit w/o an error if the tablet requested to split + * does not exist. When this happens it will also return an empty string. In the case where the + * fate operation successfully splits the tablet it will return the following string. This code + * uses this return value to see if it nee
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 61ce280c8ebbfe92961bedf76500e59c1f935cf6 Merge: f1914da45a a3616bf46f Author: Ed Coleman AuthorDate: Fri Mar 15 21:21:51 2024 + Merge remote-tracking branch 'upstream/main' into elasticity pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 8b0d2355813300ed09b45920fc1cd7cf091df1be Merge: 3fe1115014 9d9bcc1d48 Author: Ed Coleman AuthorDate: Mon Mar 11 13:05:13 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../src/main/java/org/apache/accumulo/manager/ManagerTime.java | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-)
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 0148294e35dbcf502fb0f9df6a178d669e4c8f3f Merge: 7b3e52f1ae 311c5fe821 Author: Ed Coleman AuthorDate: Fri Mar 8 19:02:50 2024 + Merge remote-tracking branch 'upstream/main' into elasticity Additional changes from merge * Unused type variable in initializeFateInstance * unneeded initialization .../java/org/apache/accumulo/manager/Manager.java | 23 +++--- 1 file changed, 12 insertions(+), 11 deletions(-) diff --cc server/manager/src/main/java/org/apache/accumulo/manager/Manager.java index 95fb00777e,bdf73b9191..6758acfc1f --- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java +++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java @@@ -243,20 -231,6 +243,20 @@@ public class Manager extends AbstractSe return state; } + // ELASTICITIY_TODO it would be nice if this method could take DataLevel as an argument and only + // retrieve information about compactions in that data level. Attempted this and a lot of + // refactoring was needed to get that small bit of information to this method. Would be best to + // address this after issue. May be best to attempt this after #3576. + public Map> getCompactionHints() { - Map allConfig = null; ++Map allConfig; +try { + allConfig = CompactionConfigStorage.getAllConfig(getContext(), tableId -> true); +} catch (InterruptedException | KeeperException e) { + throw new RuntimeException(e); +} +return Maps.transformValues(allConfig, CompactionConfig::getExecutionHints); + } + public boolean stillManager() { return getManagerState() != ManagerState.STOP; } @@@ -620,9 -757,9 +620,9 @@@ @Override public void run() { - EventCoordinator.Listener eventListener = nextEvent.getListener(); + EventCoordinator.Tracker eventTracker = nextEvent.getTracker(); while (stillManager()) { - long wait = DEFAULT_WAIT_FOR_WATCHER; + long wait; try { switch (getManagerGoalState()) { case NORMAL: @@@ -960,7 -1088,7 +960,7 @@@ log.info("Started Manager client service at {}", sa.address); // block until we can obtain the ZK lock for the manager --ServiceLockData sld = null; ++ServiceLockData sld; try { sld = getManagerLock(ServiceLock.path(zroot + Constants.ZMANAGER_LOCK)); } catch (KeeperException | InterruptedException e) { @@@ -1072,17 -1197,17 +1072,17 @@@ } try { - var metaInstance = initializeFateInstance(context, FateInstanceType.META, - final AgeOffStore store = new AgeOffStore<>( - new org.apache.accumulo.core.fate.ZooStore<>(getZooKeeperRoot() + Constants.ZFATE, - context.getZooReaderWriter()), - HOURS.toMillis(8), System::currentTimeMillis); - - Fate f = new Fate<>(this, store, TraceRepo::toLogString, getConfiguration()); - fateRef.set(f); ++ var metaInstance = initializeFateInstance(context, + new ZooStore<>(getZooKeeperRoot() + Constants.ZFATE, context.getZooReaderWriter())); - var userInstance = initializeFateInstance(context, FateInstanceType.USER, ++ var userInstance = initializeFateInstance(context, + new AccumuloStore<>(context, AccumuloTable.FATE.tableName())); + + if (!fateRefs.compareAndSet(null, + Map.of(FateInstanceType.META, metaInstance, FateInstanceType.USER, userInstance))) { +throw new IllegalStateException( +"Unexpected previous fate reference map already initialized"); + } fateReadyLatch.countDown(); - - ThreadPools.watchCriticalScheduledTask(context.getScheduledExecutor() - .scheduleWithFixedDelay(store::ageOff, 63000, 63000, MILLISECONDS)); } catch (KeeperException | InterruptedException e) { throw new IllegalStateException("Exception setting up FaTE cleanup thread", e); } @@@ -1117,15 -1242,9 +1117,15 @@@ } String address = sa.address.toString(); -sld = new ServiceLockData(sld.getServerUUID(ThriftService.MANAGER), address, -ThriftService.MANAGER); -log.info("Setting manager lock data to {}", sld.toString()); +UUID uuid = sld.getServerUUID(ThriftService.MANAGER); +ServiceDescriptors descriptors = new ServiceDescriptors(); +for (ThriftService svc : new ThriftService[] {ThriftService.MANAGER, ThriftService.COORDINATOR, +ThriftService.FATE}) { + descriptors.addService(new ServiceDescriptor(uuid, svc, address, this.getResourceGroup())); +} + +sld = new ServiceLockData(descriptors); - log.info("Setting manager lock data to {}", sld.toString()); ++log.info("Setting manager lock data to {}", sld); try {
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
This is an automated email from the ASF dual-hosted git repository. edcoleman pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git commit 7b3e52f1ae0f1a02d0804744137db521e96cf201 Merge: c7ae69b881 dcb09a726b Author: Ed Coleman AuthorDate: Thu Mar 7 19:42:42 2024 + Merge remote-tracking branch 'upstream/main' into elasticity .../core/file/blockfile/cache/lru/LruBlockCache.java | 14 -- .../file/blockfile/cache/tinylfu/TinyLfuBlockCache.java| 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/tinylfu/TinyLfuBlockCache.java index feb6a1b5c1,04cab1a38c..3656b99815 --- a/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/tinylfu/TinyLfuBlockCache.java +++ b/core/src/main/java/org/apache/accumulo/core/file/blockfile/cache/tinylfu/TinyLfuBlockCache.java @@@ -63,15 -62,15 +63,15 @@@ public final class TinyLfuBlockCache im private final Policy.Eviction policy; private final int maxSize; private final ScheduledExecutorService statsExecutor = ThreadPools.getServerThreadPools() - .createScheduledExecutorService(1, "TinyLfuBlockCacheStatsExecutor", true); + .createScheduledExecutorService(1, "TinyLfuBlockCacheStatsExecutor", false); public TinyLfuBlockCache(Configuration conf, CacheType type) { -cache = Caffeine.newBuilder() +cache = Caches.getInstance().createNewBuilder(CacheName.TINYLFU_BLOCK_CACHE, false) .initialCapacity((int) Math.ceil(1.2 * conf.getMaxSize(type) / conf.getBlockSize())) -.weigher((String blockName, Block block) -> { +.recordStats().weigher((String blockName, Block block) -> { int keyWeight = ClassSize.align(blockName.length()) + ClassSize.STRING; return keyWeight + block.weight(); -}).maximumWeight(conf.getMaxSize(type)).recordStats().build(); +}).maximumWeight(conf.getMaxSize(type)).build(); policy = cache.policy().eviction().orElseThrow(); maxSize = (int) Math.min(Integer.MAX_VALUE, policy.getMaximum()); ScheduledFuture future = statsExecutor.scheduleAtFixedRate(this::logStats, STATS_PERIOD_SEC,
(accumulo) 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
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 1f218de444eb1aff5654c55fc84659d0491ae8b8 Merge: f674e9a0b0 f26c702a87 Author: Keith Turner AuthorDate: Tue Jan 16 12:51:49 2024 -0500 Merge remote-tracking branch 'upstream/main' into elasticity .../core/clientImpl/TableOperationsImpl.java | 71 +- .../clientImpl/bulk/ConcurrentKeyExtentCache.java | 17 ++--- .../fate/zookeeper/DistributedReadWriteLock.java | 33 + .../org/apache/accumulo/core/summary/Gatherer.java | 22 +++--- .../java/org/apache/accumulo/core/util/Merge.java | 62 .../org/apache/accumulo/core/util/MergeTest.java | 31 +++- .../manager/balancer/BalancerEnvironmentImpl.java | 12 ++-- .../accumulo/server/metadata/ServerAmpleImpl.java | 2 +- .../main/java/org/apache/accumulo/gc/GCRun.java| 4 +- .../accumulo/gc/GarbageCollectionAlgorithm.java| 84 +++--- .../apache/accumulo/manager/tableOps/Utils.java| 15 +++- .../manager/tableOps/bulkVer2/LoadFiles.java | 23 +++--- .../manager/tableOps/bulkVer2/PrepBulkImport.java | 42 --- .../tableOps/bulkVer2/PrepBulkImportTest.java | 31 +--- .../org/apache/accumulo/tserver/ScanServer.java| 10 ++- .../java/org/apache/accumulo/test/AmpleIT.java | 16 +++-- .../java/org/apache/accumulo/test/GCRunIT.java | 13 ++-- .../accumulo/test/ScanServerMetadataEntriesIT.java | 6 +- .../test/compaction/ExternalCompaction4_IT.java| 33 + .../test/compaction/ExternalCompaction_2_IT.java | 8 +-- .../test/functional/GarbageCollectorTrashBase.java | 17 ++--- .../accumulo/test/functional/MetadataIT.java | 15 ++-- 22 files changed, 335 insertions(+), 232 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java index 09e4174dd7,3b7bf91612..157df582ac --- a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java @@@ -1306,37 -1328,38 +1303,41 @@@ public class TableOperationsImpl extend Text continueRow = null; MapCounter serverCounts = new MapCounter<>(); - for (TabletMetadata tablet : tablets) { - total++; - Location loc = tablet.getLocation(); - TabletHostingGoal goal = tablet.getHostingGoal(); - - if ((expectedState == TableState.ONLINE - && (goal == TabletHostingGoal.ALWAYS - || (goal == TabletHostingGoal.ONDEMAND) && tablet.getHostingRequested()) - && (loc == null || loc.getType() == LocationType.FUTURE)) - || (expectedState == TableState.OFFLINE && loc != null)) { - if (continueRow == null) { - continueRow = tablet.getExtent().toMetaRow(); + try (TabletsMetadata tablets = TabletsMetadata.builder(context).scanMetadataTable() - .overRange(range).fetch(LOCATION, PREV_ROW).build()) { ++ .overRange(range).fetch(HOSTING_GOAL, HOSTING_REQUESTED, LOCATION, PREV_ROW).build()) { + + for (TabletMetadata tablet : tablets) { + total++; + Location loc = tablet.getLocation(); ++ TabletHostingGoal goal = tablet.getHostingGoal(); + + if ((expectedState == TableState.ONLINE ++ && (goal == TabletHostingGoal.ALWAYS ++ || (goal == TabletHostingGoal.ONDEMAND) && tablet.getHostingRequested()) + && (loc == null || loc.getType() == LocationType.FUTURE)) + || (expectedState == TableState.OFFLINE && loc != null)) { + if (continueRow == null) { + continueRow = tablet.getExtent().toMetaRow(); + } + waitFor++; + lastRow = tablet.getExtent().toMetaRow(); + + if (loc != null) { + serverCounts.increment(loc.getHostPortSession(), 1); + } } - waitFor++; - lastRow = tablet.getExtent().toMetaRow(); - if (loc != null) { - serverCounts.increment(loc.getHostPortSession(), 1); + if (!tablet.getExtent().tableId().equals(tableId)) { + throw new AccumuloException( + "Saw unexpected table Id " + tableId + " " + tablet.getExtent()); } - } - if (!tablet.getExtent().tableId().equals(tableId)) { - throw new AccumuloException( - "Saw unexpected table Id " + tableId + " " + tablet.getExtent()); - } + if (lastExtent != null && !tablet.getExtent().isPreviousExtent(lastExtent)) { + holes++; + } - if (lastExtent != null && !tablet.getExtent().isPreviousExtent(lastExtent)) { - holes++; + lastExtent = tablet.getExtent(); } - -
[accumulo] 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
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 123ce967869621d527aff453bdf43f3617bc76ec Merge: 31323e5e5e bc932655b3 Author: Keith Turner AuthorDate: Tue Oct 10 17:51:13 2023 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../org/apache/accumulo/core/conf/Property.java| 6 +- .../accumulo/core/metadata/StoredTabletFile.java | 8 + .../util/compaction/ExternalCompactionUtil.java| 16 +- pom.xml| 49 --- .../constraints/MetadataConstraintsTest.java | 210 +++--- server/compactor/pom.xml | 38 +- .../apache/accumulo/compactor/CompactorTest.java | 455 - .../src/test/resources/log4j2-test.properties | 35 -- server/native/pom.xml | 5 - src/build/ci/find-unapproved-junit.sh | 8 +- start/pom.xml | 17 +- .../accumulo/test/functional/MonitorSslIT.java | 2 +- .../accumulo/test/functional/ReadWriteIT.java | 2 +- .../org/apache/accumulo/test/shell/MockShell.java | 17 +- .../apache/accumulo/test/shell/ShellServerIT.java | 68 +-- 15 files changed, 250 insertions(+), 686 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/util/compaction/ExternalCompactionUtil.java index e4eda5713d,cbda041d41..697f079d40 --- a/core/src/main/java/org/apache/accumulo/core/util/compaction/ExternalCompactionUtil.java +++ b/core/src/main/java/org/apache/accumulo/core/util/compaction/ExternalCompactionUtil.java @@@ -99,15 -99,9 +99,9 @@@ public class ExternalCompactionUtil * @return Optional HostAndPort of Coordinator node if found */ public static Optional findCompactionCoordinator(ClientContext context) { -final String lockPath = context.getZooKeeperRoot() + Constants.ZCOORDINATOR_LOCK; +final String lockPath = context.getZooKeeperRoot() + Constants.ZMANAGER_LOCK; - try { - var zk = ZooSession.getAnonymousSession(context.getZooKeepers(), - context.getZooKeepersSessionTimeOut()); - return ServiceLock.getLockData(zk, ServiceLock.path(lockPath)) - .map(sld -> sld.getAddress(ThriftService.COORDINATOR)); - } catch (KeeperException | InterruptedException e) { - throw new IllegalStateException(e); - } + return ServiceLock.getLockData(context.getZooCache(), ServiceLock.path(lockPath), new ZcStat()) + .map(sld -> sld.getAddress(ThriftService.COORDINATOR)); } /** @@@ -115,14 -109,14 +109,14 @@@ */ public static Map> getCompactorAddrs(ClientContext context) { try { - final Map> queuesAndAddresses = new HashMap<>(); - final String compactorQueuesPath = context.getZooKeeperRoot() + Constants.ZCOMPACTORS; + final Map> groupsAndAddresses = new HashMap<>(); + final String compactorGroupsPath = context.getZooKeeperRoot() + Constants.ZCOMPACTORS; ZooReader zooReader = context.getZooReader(); - List queues = zooReader.getChildren(compactorQueuesPath); - for (String queue : queues) { -queuesAndAddresses.putIfAbsent(queue, new ArrayList<>()); + List groups = zooReader.getChildren(compactorGroupsPath); + for (String group : groups) { - groupsAndAddresses.putIfAbsent(group, new ArrayList()); ++groupsAndAddresses.putIfAbsent(group, new ArrayList<>()); try { - List compactors = zooReader.getChildren(compactorQueuesPath + "/" + queue); + List compactors = zooReader.getChildren(compactorGroupsPath + "/" + group); for (String compactor : compactors) { // compactor is the address, we are checking to see if there is a child node which // represents the compactor's lock as a check that it's alive. diff --cc pom.xml index 7a5a7f1fde,602809f869..4fd8a15edd --- a/pom.xml +++ b/pom.xml @@@ -322,12 -322,11 +321,6 @@@ commons-logging 1.2 -- - - junit - junit - 4.13.2 -org.apache.accumulo -accumulo-compaction-coordinator -${project.version} -- org.apache.accumulo accumulo-compactor @@@ -623,37 -622,6 +616,11 @@@ - - - org.objenesis - objenesis - 3.3 - + +org.opentest4j +opentest4j +1.2.0 + - - org.powermock - powermock-api-easymock - ${version.powermock} - - - org.powermock - powermock-core - ${version.powermock} - - - org.powermock - powermock-module-junit4 - ${version.powermock} - - - org.powermock - powermock-refl
[accumulo] 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
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 899a95a18be20433038691df7aa0e8515a60c402 Merge: 950c806e20 de73759c24 Author: Keith Turner AuthorDate: Thu May 4 13:08:34 2023 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .github/ISSUE_TEMPLATE/post_vote_checklist.md | 5 +- .github/workflows/scripts.yaml | 16 + LICENSE| 3 +- assemble/bin/accumulo-cluster | 8 - assemble/bin/accumulo-service | 6 - assemble/build.sh | 2 +- assemble/conf/accumulo-env.sh | 4 +- assemble/src/main/resources/LICENSE| 3 +- contrib/ci/install-thrift.sh | 31 ++ contrib/ci/run-thrift.sh | 35 ++ .../accumulo/core/clientImpl/ClientContext.java| 6 +- .../core/clientImpl/TableOperationsImpl.java | 35 +- .../accumulo/core/conf/ConfigurationDocGen.java| 4 +- .../org/apache/accumulo/core/conf/Property.java| 11 +- .../java/org/apache/accumulo/core/data/Range.java | 22 +- .../blockfile/cache/tinylfu/TinyLfuBlockCache.java | 2 +- .../core/iterators/IteratorEnvironment.java| 13 - .../core/iteratorsImpl/system/MapFileIterator.java | 16 +- .../system/SourceSwitchingIterator.java| 12 +- .../apache/accumulo/core/logging/TabletLogger.java | 2 +- .../manager/balancer/AssignmentParamsImpl.java | 2 +- .../core/manager/balancer/BalanceParamsImpl.java | 2 +- .../core/manager/balancer/TServerStatusImpl.java | 2 +- .../core/manager/balancer/TableStatisticsImpl.java | 2 +- .../core/metadata/schema/MetadataSchema.java | 17 + .../core/metadata/schema/TabletMetadata.java | 4 +- .../core/metadata/schema/TabletsMetadata.java | 2 + .../accumulo/core/metrics/MetricsProducer.java | 10 +- .../accumulo/core/rpc/clients/TServerClient.java | 2 +- .../core/spi/balancer/SimpleLoadBalancer.java | 6 - .../accumulo/core/spi/crypto/AESCryptoService.java | 4 +- .../spi/crypto/PerTableCryptoServiceFactory.java | 2 +- .../accumulo/core/spi/fs/DelegatingChooser.java| 4 +- .../core/spi/fs/PreferredVolumeChooser.java| 2 +- .../org/apache/accumulo/core/util/Encoding.java| 6 +- .../core/util/compaction/CompactionJobImpl.java| 2 +- .../util/compaction/ExternalCompactionUtil.java| 2 +- .../core/util/interpret/ScanInterpreter.java | 41 --- core/src/main/scripts/generate-thrift.sh | 2 +- core/src/main/spotbugs/exclude-filter.xml | 6 - .../thrift/BulkImportState.java| 2 +- .../thrift/BulkImportStatus.java | 6 +- .../{master => manager}/thrift/Compacting.java | 2 +- .../accumulo/core/manager/thrift/FateService.java | 76 ++-- .../core/manager/thrift/ManagerClientService.java | 32 +- .../core/manager/thrift/ManagerMonitorInfo.java| 304 +++ .../core/manager/thrift/RecoveryException.java | 406 - .../{master => manager}/thrift/RecoveryStatus.java | 2 +- .../core/{master => manager}/thrift/TableInfo.java | 2 +- .../thrift/TabletServerStatus.java | 122 +++ .../thrift/TabletServerClientService.java | 44 +-- core/src/main/thrift/manager.thrift| 79 +++- core/src/main/thrift/master.thrift | 92 - core/src/main/thrift/tabletingest.thrift | 1 - core/src/main/thrift/tabletscan.thrift | 1 - core/src/main/thrift/tabletserver.thrift | 3 +- .../org/apache/accumulo/core/WithTestNames.java| 2 +- .../core/conf/AccumuloConfigurationTest.java | 32 +- .../core/iterators/DefaultIteratorEnvironment.java | 14 - .../system/SourceSwitchingIteratorTest.java| 7 +- .../BaseHostRegexTableLoadBalancerTest.java| 34 +- .../core/spi/balancer/GroupBalancerTest.java | 2 +- .../core/spi/balancer/SimpleLoadBalancerTest.java | 6 +- .../core/spi/balancer/TableLoadBalancerTest.java | 6 +- .../mapreduce/FileOutputFormatBuilderImpl.java | 12 +- .../mapreduce/InputFormatBuilderImpl.java | 6 +- .../mapreduce/OutputFormatBuilderImpl.java | 2 +- .../src/main/spotbugs/exclude-filter.xml | 5 - .../apache/accumulo/hadoop/its/WithTestNames.java | 2 +- .../mapreduce/InputFormatBuilderTest.java | 2 +- .../accumulo/minicluster/MiniAccumuloRunner.java | 2 +- .../MiniAccumuloClusterControl.java| 2 +- minicluster/src/main/spotbugs/exclude-filter.xml | 31 -- .../apache/accumulo/minicluster/WithTestNames.java | 2 +- pom.xml| 40 +- ...
[accumulo] 01/01: Merge remote-tracking branch 'upstream/main' into elasticity
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 41a3053d539629faf1c3342dd4a85da8cb072215 Merge: 7a54f64282 8b76290644 Author: Keith Turner AuthorDate: Wed Apr 5 16:22:21 2023 -0400 Merge remote-tracking branch 'upstream/main' into elasticity .../apache/accumulo/core/client/ScannerBase.java | 1 + .../core/clientImpl/RootTabletLocator.java | 6 +- .../core/clientImpl/SyncingTabletLocator.java | 23 +-- .../core/clientImpl/TableOperationsImpl.java | 14 +- .../accumulo/core/clientImpl/TabletLocator.java| 44 +++--- .../core/clientImpl/TabletLocatorImpl.java | 65 .../accumulo/core/clientImpl/ThriftScanner.java| 59 +++ .../apache/accumulo/core/clientImpl/Writer.java| 10 +- .../core/metadata/MetadataLocationObtainer.java| 20 +-- .../accumulo/core/security/Authorizations.java | 52 +- .../core/clientImpl/TabletLocatorImplTest.java | 18 +-- .../hadoop/mapreduce/InputFormatBuilder.java | 2 + .../accumulo/server/client/BulkImporter.java | 14 +- .../server/conf/ServerConfigurationFactory.java| 23 ++- .../accumulo/server/util/MetadataTableUtil.java| 4 - .../accumulo/server/client/BulkImporterTest.java | 19 +-- .../accumulo/test/functional/BulkFailureIT.java| 2 +- .../accumulo/test/manager/SuspendedTabletsIT.java | 4 +- .../apache/accumulo/test/shell/ShellServerIT.java | 175 - 19 files changed, 306 insertions(+), 249 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java index 6fa7716dc6,6d0f2aa735..76afd84fc1 --- a/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java +++ b/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java @@@ -87,9 -87,9 +87,9 @@@ public class MetadataLocationObtainer i OpTimer timer = null; if (log.isTraceEnabled()) { -log.trace("tid={} Looking up in {} row={} extent={} tserver={}", +log.trace("tid={} Looking up in {} row={} stopRow={} extent={} tserver={}", - Thread.currentThread().getId(), src.tablet_extent.tableId(), TextUtil.truncate(row), - TextUtil.truncate(stopRow), src.tablet_extent, src.tablet_location); + Thread.currentThread().getId(), src.getExtent().tableId(), TextUtil.truncate(row), -src.getExtent(), src.getTserverLocation()); ++TextUtil.truncate(stopRow), src.getExtent(), src.getTserverLocation()); timer = new OpTimer().start(); }