Вы почти наверняка столкнетесь с некоторыми проблемами с производительностью, если у вас есть вызов автозаполнения, который каждый раз загружает, анализирует и ищет большой файл XML. Это убьет вас при любой нагрузке.
В зависимости от объема данных, о которых вы говорите, вы можете хранить все это в memcache, чтобы получить наилучшие характеристики производительности.
Если вы говорите о большем количестве данных, чем вы можете разумно хранить в memcache - если я правильно помню, он будет хранить для вас около 1 МБ за раз - вы, вероятно, захотите сохранить его в хранилище данных в структуре Это оптимизировано для быстрых запросов.