50GB HttpRuntime.Cache Persistência possível?

Temos um aplicativo ASP.NET 4.0 que extrai de um banco de dados uma estrutura de dados complexa que leva mais de 12 horas para inserir uma estrutura de dados na memória (que é armazenada posteriormente no HttpRuntime.Cache). O tamanho da estrutura de dados está aumentando rapidamente e não podemos continuar esperando mais de 12 horas para armazená-lo na memória se o aplicativo reiniciar. Esse é um problema importante se você deseja alterar o web.config ou qualquer código no aplicativo Web que cause uma reinicialização - isso significa uma longa espera antes que o aplicativo possa ser usado e dificulta o desenvolvimento ou a atualização da implantação.

A estrutura de dados DEVE estar na memória para funcionar a uma velocidade que torne o site utilizável. Em bancos de dados de memória, como memcache ou Redis, são lentos em comparação com HttpRuntime.Cache, e não funcionariam em nossa situação (na memória os db precisam serializar put / get, além de não poderem se referir um ao outro, usam chaves que são pesquisas) - desempenho degradante, além de uma grande quantidade de teclas, o desempenho diminui rapidamente). O desempenho é essencial aqui.

O que gostaríamos de fazer é despejar rapidamente o HttpRuntime.Cache no disco antes que o aplicativo termine (em uma reinicialização) e poder carregá-lo imediatamente quando o aplicativo for iniciado novamente (esperamos que em minutos, em vez de mais de 12 horas ou dias ).

estrutura na memória é de cerca de 50 G

Existe uma solução para isso?

questionAnswers(1)

yourAnswerToTheQuestion