public abstract class GroupBalancer extends TabletBalancer
To use this balancer you must extend it and implement getPartitioner()
. See
RegexGroupBalancer
as an example.
Modifier and Type | Class and Description |
---|---|
static class |
GroupBalancer.Location |
TabletBalancer.BalancerProblem, TabletBalancer.NoTservers, TabletBalancer.OutstandingMigrations
context, TIME_BETWEEN_BALANCER_WARNINGS
Constructor and Description |
---|
GroupBalancer(Table.ID tableId) |
Modifier and Type | Method and Description |
---|---|
long |
balance(SortedMap<TServerInstance,TabletServerStatus> current,
Set<KeyExtent> migrations,
List<TabletMigration> migrationsOut)
Ask the balancer if any migrations are necessary.
|
void |
getAssignments(SortedMap<TServerInstance,TabletServerStatus> current,
Map<KeyExtent,TServerInstance> unassigned,
Map<KeyExtent,TServerInstance> assignments)
Assign tablets to tablet servers.
|
protected Iterable<Pair<KeyExtent,GroupBalancer.Location>> |
getLocationProvider() |
protected int |
getMaxMigrations()
The maximum number of migrations to perform in a single pass.
|
protected abstract Function<KeyExtent,String> |
getPartitioner() |
protected long |
getWaitTime()
The amount of time to wait between balancing.
|
protected boolean |
shouldBalance(SortedMap<TServerInstance,TabletServerStatus> current,
Set<KeyExtent> migrations) |
checkMigrationSanity, constraintNotMet, getOnlineTabletsForTable, init, init, resetBalancerErrors
public GroupBalancer(Table.ID tableId)
protected abstract Function<KeyExtent,String> getPartitioner()
protected Iterable<Pair<KeyExtent,GroupBalancer.Location>> getLocationProvider()
protected long getWaitTime()
protected int getMaxMigrations()
protected boolean shouldBalance(SortedMap<TServerInstance,TabletServerStatus> current, Set<KeyExtent> migrations)
public void getAssignments(SortedMap<TServerInstance,TabletServerStatus> current, Map<KeyExtent,TServerInstance> unassigned, Map<KeyExtent,TServerInstance> assignments)
TabletBalancer
getAssignments
in class TabletBalancer
current
- The current table-summary state of all the online tablet servers. Read-only. The
TabletServerStatus for each server may be null if the tablet server has not yet
responded to a recent request for status.unassigned
- A map from unassigned tablet to the last known tablet server. Read-only.assignments
- A map from tablet to assigned server. Write-only.public long balance(SortedMap<TServerInstance,TabletServerStatus> current, Set<KeyExtent> migrations, List<TabletMigration> migrationsOut)
TabletBalancer
balance
in class TabletBalancer
current
- The current table-summary state of all the online tablet servers. Read-only.migrations
- the current set of migrations. Read-only.migrationsOut
- new migrations to perform; should not contain tablets in the current set of
migrations. Write-only.Copyright © 2011–2019 The Apache Software Foundation. All rights reserved.