load_balancing
- Random (de forma predeterminada)
- Hostname más cercano
- Distancia de Levenshtein del hostname
- Prefijo común más largo del hostname
- Sufijo común más largo del hostname
- In order
- Primero o aleatorio
- Round robin
Random (por defecto)
Hostname más cercano
Distancia de Levenshtein del hostname
nearest_hostname, pero compara el hostname según la distancia de Levenshtein. Por ejemplo:
Prefijo común más largo del hostname
nearest_hostname, pero se prioriza la réplica cuyo hostname comparte el prefijo común más largo con el hostname local (cuanto más largo sea el prefijo común, mayor será la prioridad). A diferencia de nearest_hostname, que cuenta los caracteres diferentes posición por posición, esta estrategia no se ve afectada por hostnames cuyos segmentos numéricos tienen longitudes distintas. Por ejemplo, para el hostname local sfe301:
sfe10101 porque comparte con sfe301 el prefijo común más largo (sfe, longitud 3).
Las réplicas con la misma longitud de prefijo común se eligen al azar. En particular, cuando ninguna réplica comparte ningún prefijo con el hostname local (todas las longitudes de prefijo común son cero), esta estrategia se comporta exactamente igual que random.
Sufijo común más largo del hostname
hostname_longest_common_prefix, pero se compara el sufijo común más largo en lugar del prefijo. Esto es útil cuando la identidad del centro de datos está codificada como un sufijo del hostname. Por ejemplo, para el hostname local et46gtghn.qc.localdomain:
ab999.qc.localdomain porque comparte el sufijo común más largo (.qc.localdomain, longitud 15) con et46gtghn.qc.localdomain.
Las réplicas con igual longitud del sufijo común se eligen al azar. En particular, cuando ninguna réplica comparte sufijo alguno con el hostname local (todas las longitudes del sufijo común son cero), esta estrategia se comporta exactamente igual que random.
In Order
Primero o aleatorio
first_or_random resuelve el problema del algoritmo in_order. Con in_order, si una réplica deja de estar disponible, la siguiente recibe una carga doble, mientras que las demás réplicas siguen manejando la cantidad habitual de tráfico. Al usar el algoritmo first_or_random, la carga se distribuye de forma uniforme entre las réplicas que siguen disponibles.
Es posible definir explícitamente cuál es la primera réplica mediante el ajuste load_balancing_first_offset. Esto ofrece más control para reequilibrar la carga de las consultas entre las réplicas.
Round Robin
round_robin).