Я не уверен, что вы ищете конкретные детали реализации или более концептуальные идеи о том, как работать, но сейчас я добавлю некоторые идеи.
Фактические классы Trie - Вот хороший C # пример классов для настройки Trie .Похоже, вы уже разобрались в этой части.
Сохранение : я бы сохранил три данные в XML, если вы уже не используете базу данных, и у вас есть необходимость иметь ее в базе данных,XML будет простым для работы в приложении MVC, и вам не нужно беспокоиться о проблемах подключения к базе данных или о дополнительной стоимости базы данных.У меня также было бы две версии данных Trie на сервере: рабочая копия и рабочая вспомогательная копия, вторая, для которой ваш администратор может выполнять транзакции против.
Загрузка В вашем администратореВ модуле приложения вы можете реализовать функцию для загрузки трехуровневых данных в память, частота загрузки данных зависит от потребностей вашего приложения.Это может быть запланировано или доступно как ручная функция.Как и на сайтах WordPress, если пользователь должен получить к нему доступ при обновлении, он получит сообщение о том, что сайт находится на обслуживании.Вы можете загружать в память только по требованию и поддерживать загрузку файла постоянно, за исключением случаев возникновения проблем.
Обновление - у меня будет вторая база данных (или файл XML)), который используется для применения обновлений.Способ применения обновлений к производству будет частично зависеть от частоты, количества и времени обновлений.Одним из безопасных методов может быть хранение транзакций, введенных администратором.Например:
- trie.put («Джон», 112);
- trie.put («Доу», 222);
- trie.Remove ("Джон");
Затем примените эти транзакции к своим производственным данным по мере необходимости с помощью функции администратора.При необходимости переведите ваш сайт в режим «maint».Если обновления бывают небольшими и быстрыми, возможно, вы сможете закодировать сайт так, чтобы он удерживал всю работу до обработки транзакций, пользователю, возможно, придется ждать результата на несколько миллисекунд, но вам не придется беспокоиться о мутированиипроблемы с данными.
Это довольно расплывчато, но я просто высказываю некоторые идеи ... если вы предоставите комментарии, я постараюсь дать больше.