50GB HttpRuntime.Cache персистентность возможно?

У нас есть приложение ASP.NET 4.0, которое извлекает из базы данных сложную структуру данных, которая занимает более 12 часов для вставки в структуру данных в памяти (которая позднее сохраняется в HttpRuntime.Cache). Размер структуры данных быстро увеличивается, и мы не можем продолжать ждать более 12 часов, чтобы поместить его в память, если приложение перезапустится. Это серьезная проблема, если вы хотите изменить файл web.config или любой другой код в веб-приложении, вызывающий перезапуск. Это означает длительное ожидание использования приложения и затрудняет разработку или обновление развертывания.

Структура данных ДОЛЖНА быть в памяти, чтобы работать со скоростью, которая делает веб-сайт пригодным для использования. В базах данных памяти, таких как memcache или Redis, работают медленнее по сравнению с HttpRuntime.Cache и не будут работать в нашей ситуации (в БД памяти нужно сериализовать put / get, плюс они не могут ссылаться друг на друга, они используют ключи, которые являются поисками - снижение производительности, плюс при большом количестве клавиш производительность быстро снижается). Производительность является обязательным здесь.

Что мы хотели бы сделать, это быстро сбросить HttpRuntime.Cache на диск до того, как приложение завершится (при перезапуске), и иметь возможность загрузить его сразу же, когда приложение запустится снова (возможно, в течение нескольких минут вместо 12+ часов или дней) ,

Структура в памяти составляет около 50 ГБ.

Есть ли этому решение?

Ответы на вопрос(1)

Ваш ответ на вопрос