Simple Log Service (SLS) utiliza shards para controlar el rendimiento de lectura y escritura de logstores, Eventstores y Metricstores. Puede dividir o fusionar shards para ajustar la cantidad de shards activos y el rendimiento general. La división puede ser automática, pero la fusión es exclusivamente manual.
Conceptos clave
Rango de shard
Cada shard abarca un rango de hash MD5 cerrado por la izquierda y abierto por la derecha: [BeginKey,EndKey). Los rangos no se superponen y cubren en conjunto todo el espacio MD5: [00000000000000000000000000000000,ffffffffffffffffffffffffffffffff). Al crear un logstore o Metricstore, SLS divide el rango MD5 en partes iguales según la cantidad de shards especificada.
BeginKey: inicio del rango del shard. Este valor es inclusivo.
EndKey: fin del rango del shard. Este valor es exclusivo.
Por ejemplo, el Logstore A tiene cuatro shards con los siguientes rangos:
Tabla 1. Ejemplo de rangos de shards
|
ID de shard |
Rango |
|
Shard0 |
[00000000000000000000000000000000,40000000000000000000000000000000) |
|
Shard1 |
[40000000000000000000000000000000,80000000000000000000000000000000) |
|
Shard2 |
[80000000000000000000000000000000,c0000000000000000000000000000000) |
|
Shard3 |
[c0000000000000000000000000000000,ffffffffffffffffffffffffffffffff) |
La lectura de datos requiere especificar un ID de shard. La escritura de datos admite dos modos:
-
Modo de balanceo de carga: cada paquete de datos se escribe aleatoriamente en un shard disponible.
Recomendado cuando el tráfico de escritura supera la capacidad de un solo shard.
-
Modo de enrutamiento por clave hash: usted especifica una clave MD5 y los datos se escriben en el shard cuyo rango contiene dicha clave.
Por ejemplo, con base en el ejemplo de shard range, si escribe datos con una clave MD5 de 5F, estos se escribirán en Shard1. Si utiliza una clave de 8C, los datos se escribirán en Shard2.
Capacidad de lectura y escritura de shards
Cada shard tiene límites definidos de capacidad de lectura y escritura. Para más detalles, consulte Data reads and writes.
Planifique la cantidad de shards según el tráfico real de datos. Divida los shards cuando el tráfico supere la capacidad; fusione los shards cuando el tráfico sea muy inferior a la capacidad para reducir la cantidad de shards activos y el costo.
Si las llamadas a la API de escritura devuelven errores 403 o 500 de forma persistente, revise el tráfico y los códigos de estado en Cloud Monitor para determinar si necesita más shards.
Si las solicitudes superan la capacidad de un shard, SLS las procesa con el mejor esfuerzo posible, sin garantizar la calidad del servicio.
Estado del shard
El estado de un shard puede ser readwrite o readonly.
Los nuevos shards inician en estado readwrite. Después de una división o fusión, los shards originales cambian a readonly y se crean nuevos shards en estado readwrite. El estado no afecta el rendimiento de lectura, pero solo los shards readwrite garantizan el rendimiento de escritura; los shards readonly no aceptan nuevas escrituras.
División y fusión
Puede ajustar la cantidad de shards activos de dos maneras:
-
Una división separa un shard en dos nuevos shards
readwriteubicados después del original. Su rango MD5 combinado equivale al rango del shard original.Solo se pueden dividir los shards
readwrite. Tras la división, el shard original pasa a estadoreadonly: aún puede consumir sus datos, pero no puede escribir nuevos datos en él. -
Una fusión combina dos shards adyacentes en un nuevo shard
readwriteubicado después de ellos. Su rango MD5 abarca el rango combinado de los dos originales.Seleccione un shard
readwriteque no sea el último de la secuencia. SLS lo fusiona automáticamente con el shard adyacente a su derecha. Ambos shards originales pasan a estadoreadonly: aún puede consumir sus datos, pero no puede escribir nuevos datos.
Dividir shard
Planifique la cantidad de shards según su tráfico de datos. Cada shard admite un rendimiento de escritura de 5 MB/s o 500 solicitudes/s, y un rendimiento de lectura de 10 MB/s o 100 solicitudes/s. Estos son límites flexibles: SLS procesa el exceso de tráfico con el mejor esfuerzo posible. Divida los shards cuando el rendimiento sea insuficiente.
Si las llamadas a la API de escritura devuelven errores 403 o 500 de forma persistente, revise el tráfico y los códigos de estado en Cloud Monitor para determinar si necesita más shards.
Operaciones en la consola
Inicie sesión en la consola de Simple Log Service.
-
En la sección Projects, haga clic en el proyecto deseado.

En el panel de navegación izquierdo, elija
Log Storage > Logstores. En la página Logstores, pase el cursor sobre el logstore objetivo y elija .En la página Logstore Attributes, haga clic en Modify.
-
Seleccione un shard para dividir y haga clic en Split.
ImportanteSolo se pueden dividir los shards
readwrite.En la página Shard Management, localice el shard
readwriteque desea dividir y haga clic en Split en la columna Actions. En el cuadro de diálogo que aparece, seleccione la cantidad de nuevos shards y haga clic en OK.
Haga clic en Save.
Consultar shards
Operaciones en la consola
Inicie sesión en la consola de Simple Log Service.
-
En la sección Projects, haga clic en el proyecto deseado.

En el panel de navegación izquierdo, elija
Log Storage > Logstores. En la página Logstores, pase el cursor sobre el logstore objetivo y elija .-
En la página Logstore Attributes, consulte la lista de shards del logstore.
Esta página muestra el total de shards (Total Shards), incluida la cantidad de shards readwrite y readonly, así como los detalles de cada shard: Id, Status, BeginKey/EndKey y Creation Time.
División automática de shards
SLS divide automáticamente un shard cuando se cumplen todas las condiciones siguientes:
El interruptor Auto Split Shard está habilitado.
El tráfico de escritura hacia el shard ha superado su write capacity durante más de cinco minutos.
La cantidad de shards
readwriteen el logstore es menor que el valor configurado en Maximum Shards.
Los shards creados por una división en los últimos 15 minutos no son elegibles para la división automática.
Habilite la división automática de shards y establezca el valor de Maximum Shards al crear o modificar un Logstore.
-
Auto Split Shard
Por ejemplo, si tiene cuatro shards, SLS evalúa cada uno de forma independiente. Divide cualquier shard que cumpla las condiciones, siempre que la cantidad total de shards no supere el máximo configurado.
-
Maximum Shards
Límite superior de shards totales tras la división automática. Valor máximo admitido: 256 shards
readwrite.
Fusionar shards
Cuando el tráfico de datos es muy inferior a la capacidad de los shards, fusione los shards para reducir la cantidad de shards activos y disminuir costos. Una fusión combina un shard con el shard adyacente a su derecha y debe realizarse manualmente.
Para fusionar shards, debe especificar un shard que esté en estado readwrite y que no sea el último shard readwrite de la secuencia.
En el panel de navegación izquierdo, elija
Log Storage > Logstores. En la página Logstores, pase el cursor sobre el logstore objetivo y elija .En la página Logstore Attributes, haga clic en Modify.
-
Seleccione un shard para fusionar y haga clic en Merge.
La página Shard Management enumera todos los shards con sus detalles. La columna Actions ofrece las opciones Split o Merge para los shards
readwrite. No hay acciones disponibles para los shardsreadonly. -
Haga clic en Save.
Tras la fusión, los dos shards originales pasan a estado
readonly. Se crea un nuevo shardreadwritecon un rango MD5 que abarca el rango combinado de los dos originales.
Eliminar shard
Los shards eliminados no se pueden restaurar. Proceda con precaución.
-
Eliminación automática
Si establece un periodo de retención de datos para el logstore, SLS elimina automáticamente los shards y sus datos al vencer dicho periodo.
-
Eliminación manual
Si habilitó el almacenamiento permanente, elimine todo el Logstore para quitar sus shards y datos. Stop billing/Delete logstore.
Referencia de API
|
Acciones |
API |
|
Dividir un shard |
|
|
Fusionar shards |
|
|
Listar shards |
> Modify