keith-turner opened a new issue, #5667: URL: https://github.com/apache/accumulo/issues/5667
**Is your feature request related to a problem? Please describe.** When assignments are requested from a balancer plugin calling TabletBalancer.getAssignments() sometimes the plugin needs information about tablets other than the ones for which assignments are being requested. For example if the balancer is requested to assign tablet with end row "xyz123", the balancer may want to know were tablets before and after tablet "xyz123" are currently assigned when making its decision. The only way this balancer can obtain this information is by calling `BalancerEnvironment.listTabletLocations(TableId)` which will get the locations of all tablets in a table. If the balancer only wanted to know the location of two other tablets to make its assignment decision, then this can be very inefficient. **Describe the solution you'd like** In main there is a new API `Stream<TabletInformation> getTabletInformation(final String tableName, final Range range)` that could support this. However there is no way for the balancer to plugin to access this functionality. Would be nice to somehow have similar functionality made available to the balancer plugin. Also the balancer may need to request multiple ranges (like if its asked to assign 10 tablets, it may want to gather information about tablets within 10 ranges), so it would be nice to support something like `Stream<TabletInformation> getTabletInformation(final String tableName, final List<Range> ranges)` to minimize the number of RPCs required to the metadata table to gather the needed information. -- 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]
