В памяти связи с использованием .NET - PullRequest
3 голосов
/ 15 июня 2011

Я реализовал тип базы данных в памяти, используя общие списки и Linq, и он используется приложением ASP.NET.Построение этой базы данных в памяти занимает около 45 секунд (она создается из базы данных), поэтому мы пытаемся свести к минимуму повторы использования пула приложений ASP.NET до одного раза в день в 1:00, чтобы избежать перезапуска рабочего процесса в серединедень и вращение в течение 45 секунд для восстановления базы данных.

Я хотел бы переместить нашу базу данных в памяти в другой процесс, изолированный от рабочего процесса ASP.NET, но я не уверен относительно того, как я могу получить объекты вприложение ASP.NET разговаривает с отдельным процессом, который будет хранить базу данных.Должен ли я использовать тип слушателя TCP?Я знаю, что IIS имел обыкновение размещать библиотеки и делать их доступными через удаленное взаимодействие ... это все еще возможно?

Если вам интересно, почему я собираюсь решить все проблемы с базой данных в памяти, этопотому что это питание граненого приложения для поиска.Использование Linq и списков памяти быстрее на много порядков, чем обращение к базе данных для каждого поиска.

Заранее благодарен за любой совет.

Ответы [ 3 ]

2 голосов
/ 15 июня 2011

Именованные каналы - один из вариантов сделать это. Вы можете абстрагировать это до некоторой степени, используя привязки именованных каналов WCF . Вы также можете применить разрешение безопасности к указанным именованным каналам для повышения безопасности от произвольных приложений, выполняющих операции с вашей базой данных в памяти.

2 голосов
/ 15 июня 2011

Вы, вероятно, должны посмотреть на WCF по именованным каналам: http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication.

Вы можете разместить свою БД в простой службе Windows.

1 голос
/ 15 июня 2011

CK1, WCF и Named Pipes, как и другие, подойдут для одного и того же сервера, если вы затем поместите в другую машину (например, сервер приложений) свой хостинг в памяти db, вы можете просто изменить привязку и быстро использовать netTCP двоичная связь между машинами через TCP ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...