Типичные проблемы с массовыми рассылками и как их избежатьtfmailru
Что нужно делать, чтобы не попадать в спам? Технические настройки, создание письма, правила рассылок, обратная связь, инструменты. Обзор типичных ошибок в массовых рассылках и способов их устранения.
Типичные проблемы с массовыми рассылками и как их избежатьtfmailru
Что нужно делать, чтобы не попадать в спам? Технические настройки, создание письма, правила рассылок, обратная связь, инструменты. Обзор типичных ошибок в массовых рассылках и способов их устранения.
This document discusses the development of high-performance services at Mail.ru for tasks like serving avatars. It describes how they use technologies like Perl, AnyEvent, IProto and Tarantool to process over 100,000 requests per second on a single server. Key points are:
1. Mail.ru uses Perl 7 with AnyEvent and IProto to build asynchronous services that can handle 40,000-120,000 requests per second per core.
2. They store data in the Tarantool NoSQL database for its performance and ability to handle multiple indexes.
3. By using these technologies like async Perl and Tarantool, they can process over 100,000 requests per second with a
This document discusses the development of high-performance services at Mail.ru for tasks like serving avatars. It describes how they use technologies like Perl, AnyEvent, IProto and Tarantool to process over 100,000 requests per second on a single server. Key points are:
1. Mail.ru uses Perl 7 with AnyEvent and IProto to build asynchronous services that can handle 40,000-120,000 requests per second per core.
2. They store data in the Tarantool NoSQL database for its performance and ability to handle multiple indexes.
3. By using these technologies like async Perl and Tarantool, they can process over 100,000 requests per second with a
The document discusses touch and gesture handling in modern web applications. It covers touch events like touchstart, touchmove, touchend and their mouse event equivalents. It also describes how to implement swipe/scroll gestures, zooming functionality using touch inputs, and pull to refresh features using touchstart and touchmove events. Key aspects covered include detecting swipe direction, translating pages on swipe, handling touch and click events for links and taps, and transforming elements on zoom gestures.
1. Tarantool 1.5:
хранение данных на диске
Konstantin Osipov,
kostja@tarantool.org
April 09th, 2013
http://techforum.mail.ru
2. Прейскурант
● Новые возможности Tarantool 1.4.9 - 62
р.
● Алгоритмы хранения данных на диске - 165 р.
● Log-structured merge trees в Tarantool - 200 р.
● Компот из сухофруктов
- 20 р.
3. ДЕЙСТВИЕ ПЕРВОЕ, Явление I
Новые возможности 1.4.9:
● 90% ускорение TREE индексов
● BITSET index
● Lua box.socket API
● on_connect/on_disconnect triggers
● См. https://launchpad.net/tarantool/1.4/1.4.9
4. BITSET index: применение
● вычисление логических выражений
● b1 & !b2 || b3 & b4
● наиболее компактный индекс по разреженным данным (1
bit per value vs 16 bytes in TREE)
● поиск по интересам, рекомендательные сети, tag clouds
6. Lua box.socket API
● LuaSocket совместимое API
● box.socket.udp(), box.socket.tcp()
● socket:recv(), send(), readline(), recvfrom(), sendto()
● cерверные сокеты: socket:bind(), socket:listen()
● встроенный асинхронный DNS resolver
● → zero-conf, proactive monitoring via UDP
● → node.js для Lua, но без callbackов!
7. Lua box.socket example
s = box.socket.tcp()
s:connect('google.com', 80)
s:send("GET / HTTP/1.0rnrn")
hdr = s:readline({ "rnrn", "nn"})
body = s:recv(parse_header(hdr).content_length)
8. Lua box.socket: выход на бис
● box.net.box: работа с удалёнными Tarantool/Box
● box.net.mysql, box.net.pg – доступ к MySQL и PostgreSQL
из хранимых процедур
● → single-round-trip database proxy and cache
16. Diskstore: крупный план
● отдельный тип хранения данных, по аналогии с MySQL
storage engine
● 0% performance overhead if not used
● .engine = MEMORY, .engine = LSM
● key/value only (no secondary keys yet)
● оптимально для 50/50 READ-WRITE workload
35. LSM-tree: применение
● Данные с разной степенью актуальности
– Ленты сообщений
– Стена в соцсети
– Чаты
– События
● Сегрегация данных
– Данные в LSM space, индекс в MEMORY space
36. Эпилог
● Tarantool/Box - *fast* in-memory database
● Идеального способа хранения данных на диске не
существует
● Плохих способов реализовано предостаточно
● LSM-деревья оптимальны для часто меняющихся данных
● in-memory + disk-store в одном продукте = возможность
тонко подстроиться под нужды конкретной задачи
38. Действующие лица
Dmitry Simonenko – клиенты, библиотеки Lua, билды
● Dmitry E. Oboukhov, – Perl monger, главный тролль
● Roman Tsisyk, – алгоритмы,
● Konstantin Osipov – продавец-кассир
● … а также актёры ведущих московских театров