El lote de Azure Table Storage falla repentinamente

Recibo un error extraño al procesar datos por lotes en el almacenamiento de tablas de Azure.

Tengo una matriz con +350.000 cadenas. Guardo cada cadena en una fila. Funciona bien hasta los primeros +50.000 registros, luego el almacenamiento de tablas de Azure comienza a generar una excepción con "tipo de entrada no válido" y un "código de estado 400".

Cuando lo hago, lo hago con 10 artículos a la vez, con una simple política de reintento.

_TableContext.RetryPolicy = RetryPolicies.Retry(4, new TimeSpan(0, 0, 30));
_TableContext.SaveChanges(System.Data.Services.Client.SaveChangesOptions.Batch);

Sin asincronía, sin paralelismo. Funciona bien en el entorno de desarrollo.

Grrr ...

preguntado el 03 de mayo de 12 a las 11:05

El violinista es tu amigo. No hay suficiente información aquí para que alguien adivine la respuesta, pero capturar la solicitud HTTP y la respuesta para la llamada que falló seguramente nos daría suficiente para continuar. -

2 Respuestas

Existe un límite físico en Azure Table Storage de 1 MB por fila y un límite de 64 Kb (kilobytes) por campo de cadena.

Además, si está almacenando las cadenas como claves de partición o claves de fila, algunos caracteres no están permitidos.

Fuente: http://msdn.microsoft.com/en-us/library/dd179338.aspx

contestado el 03 de mayo de 12 a las 12:05

el error fue mi propio error. Intenté guardar lotes con el mismo conjunto de filas y claves de partición. Cuando cambié eso, funcionó perfectamente.

Azure FTW! :)

contestado el 05 de mayo de 12 a las 00:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.