Red de Respuestas Legales - Derecho de patentes - Dividir datos almacenados en caché en diferentes nodos del clúster. ¿Qué algoritmo se puede utilizar para las reglas de fragmentación?

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)

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 , , , y

Elemento de configuración 2. Configure en rule.xml, una cadena que se ajusta a la especificación java.text.SimpleDateFormat y se utiliza para indicarle a DBLE cómo analizar sBeginDate y sEndDate

Elemento de configuración 3. Configure en rule.xml, que debe ser una cadena de fecha que se ajuste a dateFormat

Elemento de configuración 4. Configure en rule.xml, que debe ser una cadena de fecha que se ajuste a dateFormat; si este elemento está configurado, se usa el modo de timbre, si este elemento no está configurado, se usa el modo rayado

Elemento de configuración 5. Configure , un entero no negativo, la política de fragmentación usa 86400000 milisegundos (24 horas) como una parte, y sPartionDay le dice a DBLE cuántas partes colocar en el mismo fragmento

Elemento de configuración 6. Configure la etiqueta en rule.xml. No es un elemento de configuración requerido. Si este elemento no está configurado, el valor del índice de fragmento del usuario no estará en la definición de mapFile. /p>