Как уменьшить задержку при индексировании файлов с помощью Lucene.net - PullRequest
1 голос
/ 17 июня 2020

Привет. Мы планируем использовать lucene. net как отдельный продукт, который в основном является репозиторием контента. Для повышения производительности наша система будет использовать механизм запросов Lucene для большинства операций чтения контента. Но один из основных недостатков, который мы чувствуем, - это задержка, поскольку мы не знаем о кластерной или распределенной реализации Lucene, которая является лучшим методом уменьшения задержки.

1 Ответ

1 голос
/ 24 июня 2020

Основываясь на комментариях, я теперь понимаю, что проблемы с задержкой связаны с задержкой IP-пакетов из-за наличия единственного сервера индекса, который находится на другой стороне pl anet от пользователя. 1015 *, как и Lucene, - это библиотека, а не платформа. Он обеспечивает невероятно быстрое индексирование и запросы, но не предоставляет функций платформы более высокого уровня, таких как распределенный индекс с несколькими серверами. Lucene действительно содержит множество систем для поддержки таких сценариев использования, и именно эти системы могут использоваться программными продуктами для предоставления распределенных индексов на нескольких серверах. Две самые популярные программные платформы, построенные на Lucene и обеспечивающие такие функции, - это Apache Solr и ElasticSearch . Однако важно отметить, что они построены на основе Java версии Lucene, а не Lucene. net. Мне не известны аналогичные альтернативы для Lucene. net, и создание собственного было бы серьезным мероприятием.

Однако возможно, что задержка IP-пакета, о которой вы беспокоитесь, может оказаться не слишком большой. вопрос, позвольте мне объяснить. Часто можно отправить IP-запрос на другую сторону pl anet менее чем за 300 мс, определенно менее чем за 500 мс. При рендеринге веб-страницы, обслуживаемой с другой стороны pl anet, с большим количеством изображений, обслуживаемых оттуда, эта задержка может быстро увеличиваться. При 300 мс на изображение, если на странице было 20 изображений плюс несколько css файлов и несколько js файлов, все загружены с этого сервера, тогда для рендеринга страницы может потребоваться, скажем, 25 запросов. При задержке 300 мс на запрос в такой ситуации задержка составит 7500 мс, или 7,5 секунд. В действительности некоторые запросы могут обслуживаться параллельно, что уменьшит эффективную задержку, но помимо этой задержки сервер должен выполнять работу, чтобы удовлетворить запрос, а это тоже требует времени. В любом случае, этот пример приведен только в целях иллюстрации, чтобы согласиться с тем, что обслуживание веб-страницы с другой стороны мира действительно вызывает проблемы с задержкой IP.

Однако делает поисковый запрос от Lucene из другая сторона pl anet не имеет подобных проблем, потому что это должен быть только один запрос. Так, например, если человеку нужно выполнить поиск на сервере API на другой стороне pl anet, на котором запущена Lucene. net, запрос (вероятно, json) представляет собой единственный запрос, который обнажает задержку IP. , скажем, 300 мс. Этот запрос обслуживается Lucene. net, и результаты возвращаются как один ответ на этот запрос, а затем приложение или веб-страница, отправившая запрос, отображает результаты. Таким образом, общая задержка IP - это просто задержка IP одного запроса, который для многих случаев использования можно было бы выполнить по всему миру.

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