keith-turner commented on a change in pull request #2320:
URL: https://github.com/apache/accumulo/pull/2320#discussion_r747057650
##########
File path:
server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
##########
@@ -791,6 +791,27 @@ public void run() {
}
}, 0, 5000, TimeUnit.MILLISECONDS);
+
ThreadPools.createGeneralScheduledExecutorService(aconf).scheduleWithFixedDelay(()
-> {
+ final SortedMap<KeyExtent,Tablet> onlineTabletsSnapshot =
onlineTablets.snapshot();
+ final SortedMap<KeyExtent,Pair<Long,TabletMetadata>>
tabletValidationInfo = new TreeMap<>();
+
+ // gather update counters and metadata for all tablets
+ for (var entry : onlineTabletsSnapshot.entrySet()) {
+ KeyExtent keyExtent = entry.getKey();
+ Long counter = entry.getValue().getUpdateCounter();
+ TabletMetadata tm = getContext().getAmple().readTablet(keyExtent,
+ TabletMetadata.ColumnType.FILES, TabletMetadata.ColumnType.LOGS,
+ TabletMetadata.ColumnType.ECOMP,
TabletMetadata.ColumnType.PREV_ROW);
Review comment:
I looked and I think it does only support user tablets.
https://github.com/apache/accumulo/blob/6cfb9180a0d3e5115922314ff2062e0706ef0795/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletsMetadata.java#L324-L328
So if the tablet server was serving the root or metadata tablets, then it
would throw an exception for this. Could partition the tablets into user and
non-user (root,metadata) tablets. Can use readTablets() w/ the user tablets.
For the non-user would have to call readTablet() one at a time. Could do that
partitioning in the tablet server code for now and in a later PR push it down
into Ample and remove it from the tablet server code.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]