Многопоточная обработка –  MongoDB + mystem   Обработка данных с использованием  MongoDB  и  mystem  на примере пары серви...
Для чего это надо ? <ul><li>Создание сервисов </li></ul><ul><li>Анализ данных </li></ul><ul><li>Погружение в морфологию </...
Что такое  mystem? <ul><li>Морфологический анализ </li></ul><ul><li>Гипотезы </li></ul><ul><li>Некоммерческое использовани...
MongoDB –  общие тезисы <ul><li>Скорость </li></ul><ul><li>Нагрузка </li></ul><ul><li>Масштабируемость </li></ul><ul><li>O...
Основные принципы <ul><li>Делегация работ </li></ul>Демон  MYSTEM Некий сервис MongoDB
Основные принципы <ul><li>Основной сервис – запись и чтение из  MongoDB </li></ul><ul><li>MYSTEM-Daemon –  чтение и обновл...
MYSTEM-Daemon <ul><li>Фиксированный минимум и максимум потоков </li></ul><ul><li>Нет нужды задействовать память на бесконе...
MYSTEM-Daemon <ul><li>use MongoDB </li></ul><ul><li>use IO::Select </li></ul><ul><li>use IPC::Open2 </li></ul>
Первый сервис   Веб-обработчик <ul><li>use HTTP::Daemon </li></ul><ul><li>use MongoDB </li></ul><ul><li>На входе и на выхо...
Первый сервис   Веб-обработчик
Первый сервис   Веб-обработчик <ul><li>Принимает на вход данные в заданном формате </li></ul><ul><li>Сверяется с БД </li><...
Первый сервис   Веб-обработчик <ul><li>Узкие места </li></ul><ul><ul><li>Скорость - Начальный объём БД </li></ul></ul><ul>...
Первый сервис   Веб-обработчик <ul><li>В итоге : </li></ul><ul><li>На основных принципах можно построить любую свою фантаз...
Второй сервис Анализатор <ul><li>Многопоточная обработка текстов </li></ul><ul><li>Использование  MongoDB  для моментально...
Второй сервис Анализатор <ul><li>Построение форковой модели – позвольте детям умирать! </li></ul>
Второй сервис Анализатор <ul><li>Построение форковой модели – позвольте детям умирать! </li></ul><ul><li>Максимальное числ...
Второй сервис Анализатор <ul><li>Построение форковой модели – позвольте детям умирать! </li></ul><ul><li>Максимальное числ...
Краткое резюме <ul><li>Делегация задач </li></ul>
Краткое резюме <ul><li>Делегация задач </li></ul><ul><li>Форковая модель </li></ul>
Краткое резюме <ul><li>Делегация задач </li></ul><ul><li>Форковая модель </li></ul><ul><li>Разумные решения </li></ul>
Краткое резюме <ul><li>Делегация задач </li></ul><ul><li>Форковая модель </li></ul><ul><li>Разумные решения </li></ul><ul>...
Что дальше ? <ul><li>Пережитки  Half-Life – Lambda  для ещё большей скорости </li></ul>
Что дальше ? <ul><li>Пережитки  Half-Life – Lambda  для ещё большей скорости </li></ul><ul><li>Предположите морфоформу для...
Что дальше ? <ul><li>Пережитки  Half-Life – Lambda  для ещё большей скорости </li></ul><ul><li>Предположите морфоформу для...
Спасибо за внимание! <ul><li>Андрей Павлюткин,   для  DevConf’2011 </li></ul><ul><li>[email_address] </li></ul>
Upcoming SlideShare
Loading in...5
×

Mystem, Perl, MongoDB

1,194

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,194
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mystem, Perl, MongoDB

  1. 1. Многопоточная обработка – MongoDB + mystem Обработка данных с использованием MongoDB и mystem на примере пары сервисов
  2. 2. Для чего это надо ? <ul><li>Создание сервисов </li></ul><ul><li>Анализ данных </li></ul><ul><li>Погружение в морфологию </li></ul>
  3. 3. Что такое mystem? <ul><li>Морфологический анализ </li></ul><ul><li>Гипотезы </li></ul><ul><li>Некоммерческое использование </li></ul><ul><li>http://company.yandex.ru/technology/mystem/ </li></ul>
  4. 4. MongoDB – общие тезисы <ul><li>Скорость </li></ul><ul><li>Нагрузка </li></ul><ul><li>Масштабируемость </li></ul><ul><li>OpenSource </li></ul><ul><li>http://www.mongodb.org/ </li></ul>
  5. 5. Основные принципы <ul><li>Делегация работ </li></ul>Демон MYSTEM Некий сервис MongoDB
  6. 6. Основные принципы <ul><li>Основной сервис – запись и чтение из MongoDB </li></ul><ul><li>MYSTEM-Daemon – чтение и обновление MongoDB </li></ul><ul><li>Отсутствие блокировок, конфликтов и прочих радостей </li></ul>
  7. 7. MYSTEM-Daemon <ul><li>Фиксированный минимум и максимум потоков </li></ul><ul><li>Нет нужды задействовать память на бесконечное почкование демонов </li></ul><ul><li>Гибкий тюнинг под конкретные нужды – время / нагрузка </li></ul><ul><li>Нагрузка по нисходящей </li></ul>
  8. 8. MYSTEM-Daemon <ul><li>use MongoDB </li></ul><ul><li>use IO::Select </li></ul><ul><li>use IPC::Open2 </li></ul>
  9. 9. Первый сервис Веб-обработчик <ul><li>use HTTP::Daemon </li></ul><ul><li>use MongoDB </li></ul><ul><li>На входе и на выходе - XML/JSON/Whatever </li></ul><ul><li>Может выступать как : </li></ul><ul><li>Морфолог </li></ul><ul><li>Синонимайзер </li></ul><ul><li>Корректор </li></ul>
  10. 10. Первый сервис Веб-обработчик
  11. 11. Первый сервис Веб-обработчик <ul><li>Принимает на вход данные в заданном формате </li></ul><ul><li>Сверяется с БД </li></ul><ul><li>Ждёт, пока слова не придут в морфонорму </li></ul><ul><li>Формирует ответ для пользователя </li></ul><ul><li>Profit! </li></ul>
  12. 12. Первый сервис Веб-обработчик <ul><li>Узкие места </li></ul><ul><ul><li>Скорость - Начальный объём БД </li></ul></ul><ul><ul><li>Слабо контролируемый объём входных данных </li></ul></ul>
  13. 13. Первый сервис Веб-обработчик <ul><li>В итоге : </li></ul><ul><li>На основных принципах можно построить любую свою фантазию – от примитивов, до бесплатных синонимайзеров с подключением Sphinx, Lucene – при этом обходясь “ слабыми ” мощностями. </li></ul>
  14. 14. Второй сервис Анализатор <ul><li>Многопоточная обработка текстов </li></ul><ul><li>Использование MongoDB для моментального построения статистики вхождения слов в текст </li></ul>
  15. 15. Второй сервис Анализатор <ul><li>Построение форковой модели – позвольте детям умирать! </li></ul>
  16. 16. Второй сервис Анализатор <ul><li>Построение форковой модели – позвольте детям умирать! </li></ul><ul><li>Максимальное число потоков – погоня за скоростью ? </li></ul>
  17. 17. Второй сервис Анализатор <ul><li>Построение форковой модели – позвольте детям умирать! </li></ul><ul><li>Максимальное число потоков – погоня за скоростью ? </li></ul><ul><li>Конечная обработка и сохранение результатов </li></ul>
  18. 18. Краткое резюме <ul><li>Делегация задач </li></ul>
  19. 19. Краткое резюме <ul><li>Делегация задач </li></ul><ul><li>Форковая модель </li></ul>
  20. 20. Краткое резюме <ul><li>Делегация задач </li></ul><ul><li>Форковая модель </li></ul><ul><li>Разумные решения </li></ul>
  21. 21. Краткое резюме <ul><li>Делегация задач </li></ul><ul><li>Форковая модель </li></ul><ul><li>Разумные решения </li></ul><ul><li>Особенности mystem </li></ul>
  22. 22. Что дальше ? <ul><li>Пережитки Half-Life – Lambda для ещё большей скорости </li></ul>
  23. 23. Что дальше ? <ul><li>Пережитки Half-Life – Lambda для ещё большей скорости </li></ul><ul><li>Предположите морфоформу для корня! </li></ul>
  24. 24. Что дальше ? <ul><li>Пережитки Half-Life – Lambda для ещё большей скорости </li></ul><ul><li>Предположите морфоформу для корня! </li></ul><ul><li>Вариации сервисов для других языков – Google Translate для тех, у кого нет докторской степени в лингвистике </li></ul>
  25. 25. Спасибо за внимание! <ul><li>Андрей Павлюткин, для DevConf’2011 </li></ul><ul><li>[email_address] </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×