50GB HttpRuntime.Cache Persistence Possible?

Tenemos una aplicación ASP.NET 4.0 que extrae de una base de datos una estructura de datos compleja que tarda más de 12 horas en introducirse en una estructura de datos en memoria (que luego se almacena en HttpRuntime.Cache). El tamaño de la estructura de datos aumenta rápidamente y no podemos seguir esperando más de 12 horas para guardarlo en la memoria si la aplicación se reinicia. Este es un problema importante si desea cambiar el archivo web.config o cualquier código de la aplicación web que provoque un reinicio; esto significa una larga espera antes de que la aplicación pueda usarse, y dificulta el desarrollo o la actualización de la implementació

La estructura de datos DEBE estar en la memoria para funcionar a una velocidad que haga que el sitio web sea utilizable. En la memoria, las bases de datos como memcache o Redis son lentas en comparación con HttpRuntime.Cache, y no funcionarían en nuestra situación (en la memoria los db tienen que serializar put / get, además no pueden referenciarse entre sí, usan teclas que son búsquedas - rendimiento degradante, además de una gran cantidad de teclas, el rendimiento disminuye rápidamente). El rendimiento es imprescindible aquí.

Lo que nos gustaría hacer es volcar rápidamente el HttpRuntime.Cache en el disco antes de que finalice la aplicación (en un reinicio), y poder volver a cargarlo inmediatamente cuando la aplicación se inicie nuevamente (con suerte dentro de minutos en lugar de más de 12 horas o días) ).

La estructura en memoria es de alrededor de 50 GB.

¿Hay una solución para esto

Respuestas a la pregunta(1)

Su respuesta a la pregunta