Ticket #2 (closed enhancement: fixed)
Улучшение производительности для сайтов с большим количеством страниц и ссылок (>5000)
| Reported by: | lostclus | Owned by: | lostclus |
|---|---|---|---|
| Priority: | major | Component: | clients |
| Version: | 0.1 | Keywords: | |
| Cc: |
Description
Существующие методы доступа к данным в клиентах накладывают существенное ограничение на применение LinkExchange? в сайтах с большим количеством ссылок и страниц. При увеличении количества продаваемых ссылок увеличиваться объем данных, которые нужно обрабатывать. Необходимо реализовать эффективные методы доступа к данным, что поступают от удаленных служб.
Attachments
Change History
comment:2 follow-up: ↓ 4 Changed 2 years ago by Imbolc
Так же для крупных сайтов актуально вынесение синхронизации с биржами на крон.
Независимо от скорости хранилища и парсинга, время загрузки ссылок линейно зависит от их количества. Плюс возможные проблемы с доступностью бирж. Получается, что сайты работающие в один поток начинают регулярно подвисать.
comment:3 Changed 2 years ago by lostclus
Внесены изменения в библиотеку: клиенты теперь для доступа к данным используют драйвера БД (DB drivers), добавлена подсистема БД (есть реализация БД в памяти и реализация использующая shelve), подсистема буферизации теперь не используется.
Судя по результатам attachment:benchmark_test.py производительность при работе с сайтами с большим количеством ссылок существенно возросла.
comment:4 in reply to: ↑ 2 Changed 2 years ago by lostclus
Replying to Imbolc:
Так же для крупных сайтов актуально вынесение синхронизации с биржами на крон.
Независимо от скорости хранилища и парсинга, время загрузки ссылок линейно зависит от их количества. Плюс возможные проблемы с доступностью бирж. Получается, что сайты работающие в один поток начинают регулярно подвисать.
Для облегчения этой задачи я добавил метод refresh_db() в базовый класс клиента, а так же добавил метод refresh_db() в класс площадки.
Из крона можно просто выполнять:
>>> platform.refresh_db('http://example.com/')

