«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
Слайды выступления на конференции HighLoad++2015
Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным кодом.
Будучи относительно малоизвестным, LMDB показывает ЧЕМПИОНСКУЮ производительность по чтению. А наши доработки в libmdbx предлагают ряд компромиссов для достижения невероятной производительности по записи.
http://www.highload.ru/2015/abstracts/1831.html
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)AvitoTech
В Badoo я работаю в команде, которая разрабатывает на PHP. Одна из фич, которой мы занимаемся, со временем начала отъедать всё больше и больше железячных ресурсов. В итоге мы едва успевали добавлять серверы под растущую нагрузку. При этом вечера, проведённые с Go дома, подсказывали, что можно сделать на порядки производительнее, не затратив на разработку много времени.
Я расскажу о том, почему наша фича так плохо ложится на PHP и хорошо – на Go, как уговорить всех всё переписать и не показаться сумасшедшим, ну и, конечно же, как из 19 серверов оставить только 4.
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
Авито с 2010 года — с момента запуска на широкую аудиторию — прошел уже немалый путь, успев собрать более 600 миллионов объявлений со всех уголков страны, и став при этом крупнейшим классифайдом в Европе.
В докладе будет дан обзор архитектуры ядра системы с ретроспективой, перечислены основные компоненты обработки объявлений, приведены оценки параметров функционирования от "продуктовых" "количество объявлений за единицу времени" до количества запросов на разные уровни стека (веб, базы, поиск, очереди) и степени утилизации железа.
Будут также продемонстрированы примеры реализаций классических паттернов веба: кэш, прокси, денормализация и репликация, шардинг, очереди и удаленный вызов процедур — подходы, уже более 5 лет лежащие в основе нашей архитектуры. При этом будут приведены неочевидные, на взгляд автора, особенности внедрения данных подходов.
Доклад должен заинтересовать соотнесением масштабов и ключевых слов.
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
Слайды выступления на конференции HighLoad++2015
Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным кодом.
Будучи относительно малоизвестным, LMDB показывает ЧЕМПИОНСКУЮ производительность по чтению. А наши доработки в libmdbx предлагают ряд компромиссов для достижения невероятной производительности по записи.
http://www.highload.ru/2015/abstracts/1831.html
«Как 200 строк на Go помогли нам освободить 15 серверов» – Паша Мурзаков (Badoo)AvitoTech
В Badoo я работаю в команде, которая разрабатывает на PHP. Одна из фич, которой мы занимаемся, со временем начала отъедать всё больше и больше железячных ресурсов. В итоге мы едва успевали добавлять серверы под растущую нагрузку. При этом вечера, проведённые с Go дома, подсказывали, что можно сделать на порядки производительнее, не затратив на разработку много времени.
Я расскажу о том, почему наша фича так плохо ложится на PHP и хорошо – на Go, как уговорить всех всё переписать и не показаться сумасшедшим, ну и, конечно же, как из 19 серверов оставить только 4.
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
Авито с 2010 года — с момента запуска на широкую аудиторию — прошел уже немалый путь, успев собрать более 600 миллионов объявлений со всех уголков страны, и став при этом крупнейшим классифайдом в Европе.
В докладе будет дан обзор архитектуры ядра системы с ретроспективой, перечислены основные компоненты обработки объявлений, приведены оценки параметров функционирования от "продуктовых" "количество объявлений за единицу времени" до количества запросов на разные уровни стека (веб, базы, поиск, очереди) и степени утилизации железа.
Будут также продемонстрированы примеры реализаций классических паттернов веба: кэш, прокси, денормализация и репликация, шардинг, очереди и удаленный вызов процедур — подходы, уже более 5 лет лежащие в основе нашей архитектуры. При этом будут приведены неочевидные, на взгляд автора, особенности внедрения данных подходов.
Доклад должен заинтересовать соотнесением масштабов и ключевых слов.
Il 5 e il 19 Ottobre Dofware organizza un webinar introduttivo a Dymola ed alle librerie Hydraulics e Pneumatics. Iscriviti per partecipare all'evento.
Webinar Dymola: Air conditioning e PowertrainDofware
Il 2 e il 16 Novembre Dofware organizza un webinar introduttivo a Dymola ed alle librerie Powertrain e Air conditioning. Iscriviti per partecipare all'evento.
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
Расскажу зачем они вообще нужны. Пройдемся по технологиям и промоем им косточки. Рассмотрим достоинства и недостатки, а также где и когда лучше всего применять ту или иную ORM.
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел КрынецкийJSC “Arcadia Inc”
Краткий экскурс в историю развития PHP как языка программирования с момента зарождения и до наших дней, попытка проследить расширение сферы применения языка и выявить причины, этому способствовавшие, обзор возможностей современного PHP как языка программирования и как стэка технологий для создания мощных программных решений корпоративного уровня.
Доклад будет интересен как начинающим программистам, так и разработчикам с опытом, ещё не освоившим PHP.
Автор доклада: Павел Крынецкий — PHP/Java разработчик, компания Аркадия. Участвовал в разработке веб-проектов корпоративного сектора различной сложности для как для российских, так и зарубежных заказчиков. Профессиональный опыт в IT-индустрии > 7 лет.
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
Доклад в рамках Международной конференции «Управление сетями электросвязи. Программно-конфигурируемые сети и виртуализация сетевых функций – SDN&NFV Russia 2016».
2. Взаимодействие
процессов
• Решение задач “общения” процессов на
одном хосте или по сети
• Передача данных или RPC
• UNIX Network Programming (Stevens) –
библия для сетевого программиста
4. BSD Sockets
socket(2) bind(2) connect(2) accept(2)
ip(4) inet(4)
• Системный
• Классический API прикладного уровня
сетевого стека (OSI 5-7)
• Переносимый
• Низкоуровневый
• Документация – man -k
5. Core Foundation
CFNetwork
• Обертка вокруг сокетов BSD (C)
• SSL/TLS через OpenSSL
• DNS resolving
• HTTP/HTTPS
• FTP
• Bonjour
6. Cocoa
NSURLConnection
• Общий механизм для загрузки URL
• FTP, HTTP, HTTPS
• Кеширование
• Гибкая настройка через делегаты
• Синхронный/асинхронный режимы
7. Полезная нагрузка
• Свой формат
• JSON
• XML
• Простые структуры
• Apple Property List (XML или bplist)
• Сериализация объектов в NSCoding
• RPC
• Distributed Objects
8. Свой формат
• Полная свобода действий
• Необходимость реализовать методы для
чтения/записи
• NSXMLParser для обработки XML-
данных
• JSON через json-framework
http://code.google.com/p/json-framework/
9. Property List
plist(5)
• Стабильня XML-схема для описания
абстрактных данных
• Поддерживает следующие типы:
• массив (CFArray)
• словарь (CFDictionary)
• строка (CFString)
• данные (CFData, кодируются в base64)
• дата (CFDate)
• булево значение (CFBoolean)
• числа (CFNumber)
11. Property List
• Бинарный формат существенно
компактнее (50%-70%)
• Есть реализация в Cocoa, сторонние
библиотеки для Ruby, PHP
• Декодирование происходит быстрее
13. NSCoding
• Сериализация полноценных объектов
для последующего восстановления
• Может использовать в качестве
выходного формата как Property List
(NSKeyedArchiver), так и свой бинарный
формат (NSArchiver)
• Работает только в Cocoa,
CoreFoundation, Cocotron
14. RPC
Remote Procedure Call
• rpc(3) (Sun, Mac OS X only?)
• xdr(3) для инкапсуляции данных
• eXternal Data Representation
• так реализован NFS
• Distributed Objects
• XML-RPC, SOAP (Mac OS X only)
15. Distributed Objects
• Полновесный объектный RPC:
• это просто!
• полностью прозрачно
• гибко
• надежно (respondsToSelector:)
• Подводные камни:
• сложно передать примитивы
(особенно указатели)
• если что-то пойдет не так, прокси-
объект бросает исключение
18. Bonjour
• Поиск клиентов в пределах локальной
Wi-Fi сети
• Можно анонсировать несколько разных
сервисов
• MAC OS X: можно анонсировать сервисы
в глобальном домене MobileMe
19. GameKit
• Поиск одного клиента через Bluetooth
• Простой и функциональный интерфейс,
Apple почти все уже сделала за вас
• Голосовой чат в качестве бесплатного
бонуса
20. Спасибо за внимание!
Вопросы? Комментарии?
Vladimir Pouzanov
farcaller@gmail.com
Vladimir Kirillov
proger@uaoug.org.ua