Dividir datos almacenados en caché en diferentes nodos del clúster. ¿Qué algoritmo se puede utilizar para las reglas de fragmentación?
Con cada 24 horas como hora (no un día natural), existen dos modos de trabajo según la configuración del usuario: En modo franja, cuando el usuario sólo define la fecha de inicio, la fecha de inicio (incluida ) Desde el principio, cada intervalo de tiempo aumenta infinitamente en el modo de anillo, cuando el usuario define la fecha de inicio y la fecha de finalización, el número de intervalos de tiempo entre la fecha de finalización (inclusive) y la fecha de inicio (inclusive) se utiliza como intervalo; El número total (el número de fragmentos es fijo) se enruta a estos fragmentos en forma de módulo.
1. Cuando se inicia DBLE, lea sBeginDate configurado por el usuario en rule.xml para determinar la hora de inicio.
2 Lea sPartionDay configurado por el usuario en rule.xml para. determine la hora de inicio. ¿Cuántos días de datos transporta cada fragmento de MySQL?
3. Lea el formato de fecha configurado por el usuario en rule.xml para determinar el formato de fecha del índice fragmentado.
4. Durante el proceso de ejecución de DBLE, cuando un usuario accede a una tabla usando este algoritmo, el valor del índice del fragmento (cadena) en la cláusula WHERE se extraerá y se intentará convertir al tipo de tiempo interno de Java
5. Luego encuentre los fragmentos. La diferencia entre el valor del índice y la hora de inicio se divide por la cantidad de días que el fragmento MySQL ha estado alojado para determinar el fragmento al que pertenece
1. , lea la hora de inicio sBeginDate y la hora de terminación configuradas por el usuario en rule.xml. La hora sEndDate y cuántos días de datos lleva cada fragmento de MySQL sPartionDay.
2 Según la configuración del usuario, se establece un anillo a partir. desde sBeginDate, con un fragmento por cada día de sPartionDay, y termina con sEndDate, y conecta los fragmentos en serie Conéctelos en serie
3 Lea el defaultNode configurado por el usuario en rule.xml
.4. Durante el proceso de ejecución de DBLE, cuando el usuario accede a la tabla usando este algoritmo, en la cláusula WHERE se extraerá el valor del índice del fragmento (cadena) y se intentará convertirlo al tipo de fecha interna de Java
5. Luego encuentre la diferencia entre el valor del índice del fragmento y la fecha de inicio: si el valor del índice del fragmento no es anterior a sBeginDate (incluso posterior a sEndDate), el número de días que se ha transportado el fragmento MySQL se utiliza como el módulo y el valor del índice del fragmento son módulos para obtener el fragmento al que pertenece; si el valor del índice del fragmento es anterior a sBeginDate, se colocará en la rama defaultNode en el chip
Comparación de similares. algoritmos de fragmentación con MyCat
Middleware
DBLE
MyCat
El algoritmo de partición de fecha tipo algoritmo de fragmentación se fragmenta por fecha (día) p>
No hay diferencia en el uso de los algoritmos de fragmentación de rango de módulo de los dos middleware
Notas de desarrollo
Índice fragmentado 1. Debe ser una cadena y java. text.SimpleDateFormat se puede convertir a java.util.Date según el dateFormat especificado por el usuario
Índice fragmentado 2. Proporciona modo de banda y modo de anillo dos modos
Índice de fragmentación 3. Rayado El modo comienza desde sBeginDate (inclusive), con 86400000 milisegundos (24 horas) como una parte, y cada parte de sPartionDay es un fragmento. En teoría, el número de fragmentación puede crecer infinitamente, pero si aparecen datos antes de sBeginDate y defaultNode no está configurado, el enrutamiento. fallará (si hay un defaultNode, ruta al defaultNode)
Índice fragmentado 4. El modo de anillo con 86400000 milisegundos (24 horas) es una parte, y cada parte de sPartionDay es un fragmento. La duración del tiempo desde sBeginDate. (inclusive) a sEndDate (inclusive) se divide por la longitud de un solo fragmento para obtener un número constante de fragmentos, pero los datos antes de sBeginDate aparecen y no hay Si se establece defaultNode, el enrutamiento fallará (si hay un defaultNode, ruta a defaultNode)
Índice fragmentado 5. Independientemente del modo, el usuario especifica la cadena de formato dateFormat del campo de índice fragmentado
p>
Índice fragmentado 6. Independientemente del modo, la división no se basa en el tiempo calendario, no puede corresponder a meses naturales ni años naturales y se verá afectada por cuestiones de segundos intercalares
Puntos de operación y mantenimiento
Expansión 1. En el modo seccionado, a medida que aparecen los datos después de sBeginDate, la cantidad de fragmentos aumenta sin reequilibrarse
Expansión 2. El modo seccionado no tiene la capacidad de agregar fragmentos automáticamente; se requiere operación y mantenimiento para agregar fragmentos manualmente de antemano; si los fragmentos calculados por la política de enrutamiento no existen, provocará una falla
Expansión 3. En modo de anillo, si hay una brecha entre el antiguo y el nuevo [sBeginDate,sEndDate] Si hay Si hay superposición, se requiere una migración de datos parcial; si no hay superposición entre la [sBeginDate,sEndDate] antigua y la nueva, se requiere el reequilibrio de datos
Notas de configuración
Elemento de configuración 1. En rule.xml En , los elementos configurables son Elemento de configuración 2. Configure Elemento de configuración 3. Configure Elemento de configuración 4. Configure Elemento de configuración 5. Configure Elemento de configuración 6. Configure la etiqueta