HighLoad++

Конференция разработчиков
высоконагруженных систем

Python: Асинхронный ввод/вывод без обработчиков событий

Александр Сабуренков (HeadHunter)

Программный комитет еще не принял решения по этому докладу

Тезисы:

1. Принципы

  • Event-loop
  • Coroutines
  • Как их скрестить: io-scheduler для сопрограмм

2. Поддержка coroutines в CPython

  • Stackless
  • Greenlets
  • на основе генераторов (pure-python)

3. Реализации coroutine IO scheduler в CPython

  • eventlet
  • libcoev
  • прочие

4. Преимущества - по сравнению с традиционными подходами

  • threadpool: значительно проще справляться с синхронизацией, scheduler ядра отдыхает.
  • processpool: процесс на запрос уже давно слишком расточительно
  • eventloop: не надо выворачивать логику наизнанку, распихивая её по обработчикам событий

5. Результат: под что можно подложить такое

  • pylons/django/wsgi-whatever
  • что делать с доступом к базе
  • и ко всему остальному - на примере memcached

6. Benchmarks

Ссылки по теме:

http://eventlet.net/

http://code.google.com/p/cogen/

http://chiral.j4cbo.com/trac

http://pypi.python.org/pypi/Spawning

http://code.google.com/p/friendlyflow/

http://weightless.io/weightless

http://svn.wiretooth.com/svn/open/asycamore/trunk/asycamore.html#overview

http://code.google.com/p/fibra/

http://opensource.hyves.org/concurrence/

http://trac.softcircuit.com.au/circuits/

По любым вопросам обращайтесь:
Программный комитет : Олег Бунин , +7 (916) 635-95-84
Организационный комитет : , +7 (495) 646-07-68 доб. 2
Бухгалтерия и вопросы оплаты : Анна Громовая , +7 (495) 646-07-68 доб. 1
Пресс-служба : , +7 (495) 646-07-68 доб. 6

Почтовый адрес: 125362, Москва, ул.Водников, дом 2, стр.2, офис 15 (четвертый этаж), ООО «Онтико»

Rambler's Top100
Рейтинг@Mail.ru