During dynamic rebalancing entries get moved as they are modified. You configure dynamic rebalancing on the entry counter placement algorithm or a third-party placement algorithm that supports rebalancing. This algorithm keeps a count of the number of entries or the size of the backend set. You configure dynamic rebalancing using the following parameters:

  • rebalancing-enabled . Determines whether entry rebalancing is enabled. When rebalancing is enabled, the placement algorithm is consulted after modify and add operations, to determine whether the target entry should be moved to a different backend set.
  • rebalancing-scope . Indicates which modified entries are candidates for rebalancing. A value of top-level indicates that only entries immediately below the entry-balancing base can be rebalanced. A value of any indicates that entries at any level below the entry-balancing base may be rebalanced.
  • rebalancing-minimum-percentage . Specifies the minimum threshold for entries to be migrated from one backend set to a preferred backend set with a smaller size. Entries are not migrated unless the percentage difference between the value of the current backend set and the value of the preferred backend set exceeds this threshold. This parameter prevents unnecessarily migrating entries back and forth between backend sets of similar sizes.
  • rebalancing-subtree-size-limit . Specifies the maximum size of a subtree that can be rebalanced.
  • poll-interval . Specifies how long to wait between polling the size of the backends to determine how to rebalance; works in conjunction with the rebalancing-minimum-percentage property.
  • placement-criteria . Determines which approach to use to select a destination backend for rebalancing. Possible values are: entry-count, backend-size, or custom.

The following figure illustrates an entry-balancing base DN and three subtrees, A, B, and C. If the rebalancing scope is set to any, any child entries under the base DN can be rebalanced. For example, if a change is made to entry A1, the entire subtree A might be rebalanced, depending upon how you have configured rebalancing. If the rebalancing scope is set to top-level, rebalancing is only triggered when entries at the top level, such as A, are modified. Changes made to subentries, such as A1 or A2, do not trigger rebalancing. Rebalancing is also triggered upon the addition of entries such as A1,A2, provided the scope is any.

If you are writing your own 3rd party algorithm, you program dynamic rebalancing using the SelectRebalancingBackendSet method on the placement algorithm. For more information, see the Server SDK documentation.