Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 11:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2683.html
Наш доклад описывает способ использования больших объемов памяти, которые стали доступны в последние годы. К сожалению, эта память обычно остается незадействованной в управляемых средах исполнения в связи с принудительной сборкой мусора. Разработчики прибегают к внешним хранилищам данных ( i.e Memcached), что несет дополнительные расходы.
...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 12:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2688.html
Современные приложения часто используют большое количество памяти, ещё чаще разработчики не задумываются, как именно приложение работает с памятью, и откуда она берётся. Просим ядро дать кусок памяти и начинаем с ним что-то делать... Но что за память нам выделяет ядро операционной системы? Память на самом деле виртуальная и делится на единицы, называемые страницами. Страницы бывают маленькими, бывают большими и очень большими.
...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Ontico
На примере нашей системы хранения фотографий мы хотим рассказать о проблемах, с которыми столкнулись в течение прошедших семи лет, связанных с ее программными и аппаратными компонентами, и о путях их решений.
В данном докладе речь пойдет о том, как сохранить независимость от поставщика и построить масштабируемую систему хранения с длительным сроком эксплуатации и способностью к оперативному внесению изменений в конфигурацию. Как сделать изменения на аппаратном уровне прозрачными для разработчиков, а также о том, как упростить развертывание и обслуживание.
В общих чертах изложен опыт и проблемы, которые мы получили в ходе эксплуатации классических мультиконтроллерных СХД. Основная тема - построение собственных хранилищ на базе общедоступных компонентов (полки, адаптеры, экспандеры, интерпозеры, диски, ЦПУ и т.д.) с потенциальной возможностью замены любого из выше перечисленного на другую модель. Дублирование критически важных узлов в рамках одной СХД. Обзор используемых транспортов - SRP, FC, iSCSI и описание того, каким образом можно быстро адаптировать такое хранилище под один или несколько транспортов, с минимальными вложениями. Обзор ПО для реализации СХД (SCST/LIO или проприетарные решения в области Software Defined Storage ). Автоматизация развертывания (инсталляция/управление с помощью Puppet). Тестирование перед вводом в эксплуатацию. Multipath I/O и упрощение именования экспортируемых блочных устройств. Политика составления наборов firmware для стабильной работы. Мониторинг. Расследование сбоев (Order of failure и т.п.).
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
Every company comes to a point where it’s infrastructure no longer fits team and business needs, and kludges are not working anymore. That’s the time to re-think and redesign the whole infrastructure. This is exactly where our company was half a year ago. I will talk about our experience dealing with this challenge while balancing between existing technology, costs, today’s reality and future needs.
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)Ontico
Многие из вас, наверное, видели результаты тестов сравнения Tarantool с остальными СУБД, которые показывают, что Tarantool быстрее всех, оптимальней по памяти, обрабатывает наибольшее количество транзакций в секунду.
И, несмотря на то, что исходные коды всех тестов полностью открыты и хорошо откомментированы, позволяя всем желающим повторить тесты, все равно остаются вопросы - за счет чего Tarantool такой быстрый и оптимальный?
Я решил суммировать мои ответы на эти вопросы в докладе на Highload++.
Итак, почему Tarantool такой быстрый?
Краткий ответ: потому что он с самого начала разрабатывался и до сих пор разрабатывается во главе угла с производительностью/оптимальностью/минимальным потреблением всех ресурсов системы.
Более полный ответ я раскрою в своем выступлении. Приходите, будет интересно! :)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)Ontico
Vinci - это второе по популярности приложение в мире для обработки фотографий с помощью нейронных сетей.
Расскажу, как менее чем за месяц с нуля разработать и развернуть приложение, обработать 3 миллиона фотографий на GPU в день запуска и не упасть.
Доклад будет разделен на 3 части:
1) Менеджинг задач при работе с GPU, как найти компромисс между надежностью и максимальной производительностью.
2) Обзор инструментов, подводных камней и софта.
3) Что можно и нужно оптимизировать, какие есть дальнейшие перспективы.
Цель доклада – развеять миф, что нейросети это сложно.
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Демоны в большом проекте – проблемы и их решения (Redis, RabbitMQ, Skytools, Node.JS, HBase)", Александр Чистяков (ведущий разработчик Cezurity)
Аннотация
Когда команда разработчиков собирается написать новый сервис, у нее, как правило, отсутствует свободное время, но есть необходимый энтузиазм. Из-за нехватки времени многие архитектурные решения приходится принимать, руководствуясь общими соображениями, так как провести всесторонние тесты имеющихся на рынке средств в краткие сроки невозможно. Мы, специалисты компании Cezurity, начали свой проект не вчера, и уже накопили некоторый опыт использования технологий, появившихся сравнительно недавно - таких как Skytools, Node.JS, RabbitMQ и Redis. О том, какие возникли проблемы при внедрении этих средств, и какие их ограничения пришлось преодолевать и учитывать - мой доклад. Кроме того, я расскажу о новом направлении в нашей деятельности - внедрении HBase для хранения большого объема данных.
Биография
Докладчик - узкий специалист широкого профиля, относит себя к виду, называемому в современной англоязычной литературе термином "DevOps". Любит принимать участие в создании сложных систем и постоянно это делает. Никогда не работал в Яндексе, компенсировав это работой в Mail.Ru и некоторых других местах.
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
Андрей Николаенко, системный архитектор в IBS, выступил на конференции HighLoad++ 2016.
Тезисы
В выпуске 4.8 ядра Linux появилась поддержка NVMf (NVM Express over Fabrics) — стандартизованной возможности присоединять по сети как блочные устройства твердотельные накопители, установленные в разъёмы PCI Express. NVMf лишён многих недостатков iSCSI, повторяющего по сети SCSI-команды со всеми их издержками времён дисковых накопителей, и главное — позволяет по полной использовать возможности сетей с прямым доступом к оперативной памяти (RDMA). Таким образом, можно под управлением одного узла собрать сверхбыстрый и сверхотзывчивый пул блочных устройств, не прибегая к покупке дорогого флэш-массива. Но как воспользоваться этим пулом, не загубив теоретические показатели программными обёртками?
В докладе будут рассмотрены варианты применения NVMf для различных конфигураций PostgreSQL, Oracle Database, Hadoop, файловых хранилищ, о разработках в направлении «программно-определяемой памяти» с применением NVMe-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
My talk on Hadoop stack operations engineering at OSPCon Nov 2015 (http://www.ospcon.ru/event/prakticheskaya-konferentsiya-tekhnologii-bolshikh-dannykh_130.html)
Обзор архитектуры и подсистем деплоя и мониторинга.
Как инженеры делают систему прозрачной для разработки.
1) Схема организации репозитория puppet.
Зачем мы сделали репозиторий публичным внутри компании?
Как мы "делим" puppet, и что делать, если все "пропало"?
Собственная реализация механизма puppet kick.
2) Как рассказать всем обо всем и никого не потерять.
"Черный мониторинг" (rbmon). Как мы собираем информацию о серверах и демонах.
Делимся логами с разработчиками. Почему написали "велосипед"?
3) Graphite - система сбора и визуализации данных.
Почему graphite?
1М метрик в минуту?
Какие метрики мы рисуем (nginx-graphite-module, rbmon plugins).
Визуализация работы проекта (Dashboard пульт).
Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...it-people
GitLab is a free, open source alternative to GitHub that provides similar features for hosting and collaborating on code. It allows users to create projects, issues, labels, merge requests, and more through an intuitive workflow. While it can be installed locally, GitLab.com also provides free private repositories and unlimited collaborators. The document outlines GitLab's features for code hosting, continuous integration/deployment, static site generation, and more to argue it should no longer be ignored compared to GitHub.
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 12:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2688.html
Современные приложения часто используют большое количество памяти, ещё чаще разработчики не задумываются, как именно приложение работает с памятью, и откуда она берётся. Просим ядро дать кусок памяти и начинаем с ним что-то делать... Но что за память нам выделяет ядро операционной системы? Память на самом деле виртуальная и делится на единицы, называемые страницами. Страницы бывают маленькими, бывают большими и очень большими.
...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Ontico
На примере нашей системы хранения фотографий мы хотим рассказать о проблемах, с которыми столкнулись в течение прошедших семи лет, связанных с ее программными и аппаратными компонентами, и о путях их решений.
В данном докладе речь пойдет о том, как сохранить независимость от поставщика и построить масштабируемую систему хранения с длительным сроком эксплуатации и способностью к оперативному внесению изменений в конфигурацию. Как сделать изменения на аппаратном уровне прозрачными для разработчиков, а также о том, как упростить развертывание и обслуживание.
В общих чертах изложен опыт и проблемы, которые мы получили в ходе эксплуатации классических мультиконтроллерных СХД. Основная тема - построение собственных хранилищ на базе общедоступных компонентов (полки, адаптеры, экспандеры, интерпозеры, диски, ЦПУ и т.д.) с потенциальной возможностью замены любого из выше перечисленного на другую модель. Дублирование критически важных узлов в рамках одной СХД. Обзор используемых транспортов - SRP, FC, iSCSI и описание того, каким образом можно быстро адаптировать такое хранилище под один или несколько транспортов, с минимальными вложениями. Обзор ПО для реализации СХД (SCST/LIO или проприетарные решения в области Software Defined Storage ). Автоматизация развертывания (инсталляция/управление с помощью Puppet). Тестирование перед вводом в эксплуатацию. Multipath I/O и упрощение именования экспортируемых блочных устройств. Политика составления наборов firmware для стабильной работы. Мониторинг. Расследование сбоев (Order of failure и т.п.).
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
Every company comes to a point where it’s infrastructure no longer fits team and business needs, and kludges are not working anymore. That’s the time to re-think and redesign the whole infrastructure. This is exactly where our company was half a year ago. I will talk about our experience dealing with this challenge while balancing between existing technology, costs, today’s reality and future needs.
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)Ontico
Многие из вас, наверное, видели результаты тестов сравнения Tarantool с остальными СУБД, которые показывают, что Tarantool быстрее всех, оптимальней по памяти, обрабатывает наибольшее количество транзакций в секунду.
И, несмотря на то, что исходные коды всех тестов полностью открыты и хорошо откомментированы, позволяя всем желающим повторить тесты, все равно остаются вопросы - за счет чего Tarantool такой быстрый и оптимальный?
Я решил суммировать мои ответы на эти вопросы в докладе на Highload++.
Итак, почему Tarantool такой быстрый?
Краткий ответ: потому что он с самого начала разрабатывался и до сих пор разрабатывается во главе угла с производительностью/оптимальностью/минимальным потреблением всех ресурсов системы.
Более полный ответ я раскрою в своем выступлении. Приходите, будет интересно! :)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)Ontico
Vinci - это второе по популярности приложение в мире для обработки фотографий с помощью нейронных сетей.
Расскажу, как менее чем за месяц с нуля разработать и развернуть приложение, обработать 3 миллиона фотографий на GPU в день запуска и не упасть.
Доклад будет разделен на 3 части:
1) Менеджинг задач при работе с GPU, как найти компромисс между надежностью и максимальной производительностью.
2) Обзор инструментов, подводных камней и софта.
3) Что можно и нужно оптимизировать, какие есть дальнейшие перспективы.
Цель доклада – развеять миф, что нейросети это сложно.
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Демоны в большом проекте – проблемы и их решения (Redis, RabbitMQ, Skytools, Node.JS, HBase)", Александр Чистяков (ведущий разработчик Cezurity)
Аннотация
Когда команда разработчиков собирается написать новый сервис, у нее, как правило, отсутствует свободное время, но есть необходимый энтузиазм. Из-за нехватки времени многие архитектурные решения приходится принимать, руководствуясь общими соображениями, так как провести всесторонние тесты имеющихся на рынке средств в краткие сроки невозможно. Мы, специалисты компании Cezurity, начали свой проект не вчера, и уже накопили некоторый опыт использования технологий, появившихся сравнительно недавно - таких как Skytools, Node.JS, RabbitMQ и Redis. О том, какие возникли проблемы при внедрении этих средств, и какие их ограничения пришлось преодолевать и учитывать - мой доклад. Кроме того, я расскажу о новом направлении в нашей деятельности - внедрении HBase для хранения большого объема данных.
Биография
Докладчик - узкий специалист широкого профиля, относит себя к виду, называемому в современной англоязычной литературе термином "DevOps". Любит принимать участие в создании сложных систем и постоянно это делает. Никогда не работал в Яндексе, компенсировав это работой в Mail.Ru и некоторых других местах.
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
Андрей Николаенко, системный архитектор в IBS, выступил на конференции HighLoad++ 2016.
Тезисы
В выпуске 4.8 ядра Linux появилась поддержка NVMf (NVM Express over Fabrics) — стандартизованной возможности присоединять по сети как блочные устройства твердотельные накопители, установленные в разъёмы PCI Express. NVMf лишён многих недостатков iSCSI, повторяющего по сети SCSI-команды со всеми их издержками времён дисковых накопителей, и главное — позволяет по полной использовать возможности сетей с прямым доступом к оперативной памяти (RDMA). Таким образом, можно под управлением одного узла собрать сверхбыстрый и сверхотзывчивый пул блочных устройств, не прибегая к покупке дорогого флэш-массива. Но как воспользоваться этим пулом, не загубив теоретические показатели программными обёртками?
В докладе будут рассмотрены варианты применения NVMf для различных конфигураций PostgreSQL, Oracle Database, Hadoop, файловых хранилищ, о разработках в направлении «программно-определяемой памяти» с применением NVMe-устройств, доступных по сети, обсуждены текущие проблемы, ограничения и перспективы. Особое внимание будет уделено практическим способам измерения производительности ввода-вывода с учётом задачи, решаемой подсистемой хранения.
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
My talk on Hadoop stack operations engineering at OSPCon Nov 2015 (http://www.ospcon.ru/event/prakticheskaya-konferentsiya-tekhnologii-bolshikh-dannykh_130.html)
Обзор архитектуры и подсистем деплоя и мониторинга.
Как инженеры делают систему прозрачной для разработки.
1) Схема организации репозитория puppet.
Зачем мы сделали репозиторий публичным внутри компании?
Как мы "делим" puppet, и что делать, если все "пропало"?
Собственная реализация механизма puppet kick.
2) Как рассказать всем обо всем и никого не потерять.
"Черный мониторинг" (rbmon). Как мы собираем информацию о серверах и демонах.
Делимся логами с разработчиками. Почему написали "велосипед"?
3) Graphite - система сбора и визуализации данных.
Почему graphite?
1М метрик в минуту?
Какие метрики мы рисуем (nginx-graphite-module, rbmon plugins).
Визуализация работы проекта (Dashboard пульт).
Почему вы не можете игнорировать GitLab в 2016 году, Иван Немытченко, Gitlab...it-people
GitLab is a free, open source alternative to GitHub that provides similar features for hosting and collaborating on code. It allows users to create projects, issues, labels, merge requests, and more through an intuitive workflow. While it can be installed locally, GitLab.com also provides free private repositories and unlimited collaborators. The document outlines GitLab's features for code hosting, continuous integration/deployment, static site generation, and more to argue it should no longer be ignored compared to GitHub.
This document compares PLpgSQL and PL/SQL programming languages. PLpgSQL is based on PL/SQL but has some differences in implementation and features. It focuses on simplicity and integration with PostgreSQL rather than compatibility with Oracle. While some functionality is similar, PLpgSQL is designed for the PostgreSQL environment rather than being a pure clone of PL/SQL. The author discusses the history and design of PLpgSQL.
SECON'2016. Сигаев Федор, Pg в кластере. Скандалы, интриги, расследованияSECON
В докладе будет рассказано про горизонтальное масштабирование, варианты кластера вокруг Pg, над каким вариантом кластера работает Postgres Professional, архитектурные и технологические задачи и результаты первых тестов
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON
Я расскажу про то, как устроен современный Open Source на примере проекта PostgreSQL и про те возможности, которые дает Open Source разработчику, в частности, в реализации себя как творческой личности и карьерного роста, а также достижения свободы и независимости. Open Source в условиях цифрового равенства позволяет разработчику жить и работать в привычных условиях без обязательного перемещения в неудобный для жизни мегаполис, и при этом быть членом большого международного сообщества, принимать участие в его жизни и влиять на развитие проекта.
Об опыте применения jsonb в реальных проектах. Выступление на PgConf.Russia 2016etyumentcev
В докладе описан опыт построения нагруженной отказоустойчивой системы, использующей jsonb для хранения данных. В частности рассказываются механизмы, которые заменили join, транзакции, в том числе распределенные, репликации обычных SQL баз данных.
This document discusses logical replication with pglogical. It begins by explaining that pglogical performs row-oriented replication and outputs replication data that can be used in various ways. It then covers the architectures of standalone PostgreSQL, physical replication, and logical replication. The rest of the document discusses key aspects of pglogical such as its output plugin, selective replication capabilities, performance and future plans, and examples of using the output with other applications.
This document discusses streaming replication in PostgreSQL. It covers how streaming replication works, including the write-ahead log and replication processes. It also discusses setting up replication between a primary and standby server, including configuring the servers and verifying replication is working properly. Monitoring replication is discussed along with views and functions for checking replication status. Maintenance tasks like adding or removing standbys and pausing replication are also mentioned.
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...Nikolay Samokhvalov
Администрирование баз данных в будущем будет полностью автоматизировано. Это уже так для базовых операций DBA: поднятие инстансов, бэкапы, управление репликацией, failover — мы наблюдаем это по бурному развитию облачных «управляемых» СУБД (AWS RDS, Google Cloud SQL и десятков игроков поменьше), работе над k8s-оператором для Postgres и MySQL в ряде компаний, внедрению внутренних RDS-like DBaaS (database-as-a-service) решений внутри крупных организаций.
Но диагностика и оптимизация производительности баз данных сегодня всё ещё очень «ручные». Например, в Postgres: находим медленную группу запросов в pg_stat_statements, ищем конкретный пример (а то и «выдумываем» его на ходу), пробуем EXPLAIN ANALYZE сначала в dev/staging-окружении, где, как правило, данных не так много, а потом на prod'е... Подбираем индекс, убеждаемся, что он ускоряет (вроде бы) один SQL-запрос и — всё, отправляем в production. Метод «чик-чик и в production» должен остаться в прошлом! Как остались в прошлом развёртывание и настройка серверов и сервисов вручную.
Nancy CLI (https://github.com/postgres-ai/nancy) – открытый фреймворк для проведения экспериментов над базами данных PostgreSQL, позволяющий любому инженеру наладить системный подход к анализу и оптимизации производительности БД. Nancy поддерживает проведение экспериментов локально (на любом сервере) и удалённо на дешёвых высокопроизводительных спот-инстансах AWS EC2.
Без каких-либо специальных знаний, используя Nancy CLI, любой инженер может теперь:
- собрать подробную информацию о поведении «SQL-запросов с прода» на «клоне прода», но «не трогая прод» с целью выявления узких мест (на «проде» под нагрузкой включать обширную диагностику неразумно, а иногда и невозможно);
- проверить, как тот или иной индекс влияет на производительность SQL (в том числе, насколько он замедлит UPDATE'ы);
- подобрать оптимальные параметры настройки Postgres'а (пример: запустить в облаке проверку 100 вариантов default_statistics_target с подробным исследованием эффекта и анализом для каждой группы SQL-запросов);
- сравнить 2+ прогонов моделированной нагрузки на клоне реальной БД в различных условиях (разное оборудование, разные версии Postgres, разные настройки, разные наборы индексов).
В докладе мы также обсудим конкретные примеры внедрения метода автоматизации экспериментов над БД и Nancy CLI в ряд проектов различных компаний (БД до 2ТБ, hybrid workload, до 15k TPS) и трудности, которые пришлось преодолеть на пути:
1. Включение полного логирования запросов: когда это просто страх, а когда это действительно серьёзный стресс для сервера? Как быть, если диски «не тянут» полное логирование?
2. Вопросы безопасности: нужно ли давать доступ к экспериментальным узлам всем разработчикам или можно обойтись без этого? Обфускировать ли данные?
3. Как убедиться, что результаты эксперимента достоверны?
4. Как проводить эксперименты над терабайтной базой данных быстро?
5. Стоит ли включать Nancy в CI/CD-конвейер?
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6Nikolay Samokhvalov
Первый релиз-кандидат версии 9.6 вышел 1 сентября, а это значит, что совсем скоро будет полноценный релиз. Все вокруг уже успели обсудить новинки, и теперь уже стыдно ничего не знать о таких вещах, как параллелизация выполнения запросов, pushdown для FDW, мониторинг waitlocks, полнотекстовый поиск по фразам или магический \gexec в psql. Чтобы никому не приходилось краснеть, мы быстро пройдёмся по всем основным и интересным моментам версии 9.6.
ERP-системы в облаке: разбор кейсов DataLineDataLine
Рассматриваем реальные кейсы виртуализированных ERP-систем в ритейле, e-commerce и промышленности и изучаем "подводные камни" на примере Oracle E-Business Suite, SAP ERP и Microsoft Dynamics AX.
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Tanya Denisyuk
Будет показан пример архитектуры популярной социальной сети в Англии, переработанной на новом стеке, чтобы решить проблемы производительности, отказоустойчивости и горизонтального масштабирования. Новый стек базируется на технологиях: .NET, SignalR, Couchbase, RabbitMQ, ElasticSearch, Amazon Services (CloudFront, S3, EC2, Route 53, Balancer), Windows, Linux. Цель: показать одну из моделей архитектуры нагруженных веб-систем, практики и возможные подводные камни при разработке высоконагруженных Интернет систем.
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)Alexey Kovyazin
Небольшая презентация Дмитрия Еманова, ведущего разработчика Firebird, посвящена обзору СУБД Firebird, в том числе текущему состоянию и планам развития.
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
Alexey Zinoviev Алексей Зиновьев рассказывает о выборе одной из следующих баз данных CouchDB, Neo4j, Mongo, Cassandra, HBase, Riak на Happydev 2013
Article "Choice of NoSQL database for your project: Don't bite off more than you can chew" presented on HappyDev 2013 (IT-conference in Omsk) by Alexey Zinoviev
The main idea of this article is comparison of the most popular NoSQL databases: CouchDB, Cassandra, Mongodb, Riak, Neo4j, HBase
Доклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
Jelastic - гибридная платформа как сервис(PaaS) для компаний- разработчиков ПО на Java, Ruby, .NET, ASP.NET, PHP, Node.JS и Docker. Позволяет строить автомасштабируемые, отказоустойчивые среды для приложений, управлять множеством сред для разработки и тестирования
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
- Scrapy is a framework for web scraping that allows for extraction of structured data from HTML/XML through selectors like CSS and XPath. It provides features like an interactive shell, feed exports, encoding support, and more.
- Scrapy is built on top of the Twisted asynchronous networking framework, which provides an event loop and deferreds. It handles protocols and transports like TCP, HTTP, and more across platforms.
- Scrapy architecture includes components like the downloader, scraper, and item pipelines that communicate internally. Flow control is needed between these to limit memory usage and scheduling through techniques like concurrent item limits, memory limits, and delays between calls.
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
The document discusses debugging in Python 3.6. It describes tracing and frame evaluation debuggers. Tracing debuggers slow code execution significantly by calling the tracing function on every line. Python 3.6 introduced a new frame evaluation API that allows evaluating frames directly, avoiding the performance issues of tracing. The document demonstrates how to build a debugger using this approach, including setting breakpoints and stepping through code by inserting temporary breakpoints on each line. Frame evaluation allows building a debugger that is faster than tracing debuggers without significant performance penalties.
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
Gevent is a concurrency library for Python that uses greenlets, or lightweight coroutines, to provide asynchronous operations and non-blocking I/O. It allows developing highly concurrent applications using a simple and familiar synchronous style. The document compares gevent to other concurrency options like asyncio and discusses how it provides features like asynchronous task execution, event loops, and inter-greenlet communication using queues and callbacks.
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
The document discusses what serverless computing is and how it can be used for building applications. Serverless applications rely on third party services to manage server infrastructure and are event-triggered. Popular serverless frameworks like AWS Lambda, Google Cloud Functions, Microsoft Azure Functions, and Zappa allow developers to write code that runs in a serverless environment and handle events and triggers without having to manage servers.
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
The document describes a talk on optimizing Python performance through just-in-time compilation. It discusses how the CPython interpreter works by evaluating bytecode through an evaluation loop. It then talks about how PyPy achieves faster performance through jit compilation of hot loops detected via tracing. The talk dives into the RPython language used to implement PyPy and shows an example of compiling a small Python program to C with RPython. It also discusses using partial evaluation to specialize an interpreter for constant inputs.
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
The document appears to be a transcript of Python code being executed in an interactive Python shell. It contains examples testing the behavior of built-in functions and operators like sorted(), reversed(), isinstance(), sum(), float("nan"), is, min(), and comparisons like ==, <, on various data types including lists, tuples, and dictionaries.
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
The document discusses various security vulnerabilities in Python web applications. It begins with an overview of the OWASP Top 10 security risks, with sections focusing on risks related to using components with known vulnerabilities (A9) and insufficient attack protection (A7). For A9, it provides examples of vulnerabilities in popular Python packages and recommends checking changelogs and vulnerability databases. For A7, it recommends implementing attack protections like login attempts logging, rate limiting, and use of a web application firewall. The document also covers security misconfiguration (A5), giving examples like using default settings in production and exposing tracebacks.
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
The document discusses best practices for writing tests in Swift, including recommendations to:
- Write clean, readable tests that focus on asserting a single truth
- Use a domain-specific language in tests for clarity
- Structure tests with "given-when-then"
- Mock dependencies through protocols to enable test isolation
- Favor partial mocks over fully mocking to limit complexity
2. Что такое PostgreSQL
PostgreSQL - это свободно распространяемая
объектно-реляционная СУБД (ORDBMS)
Расширяемая — типы данных, операторы,
функции, индексы
Поддержка ANSI SQL (1992, 1999, 2003, 2011),
NoSQL (key-value, JSON, JSONB)
Разрабатывается независимым мировым
сообществом с существенным российским участием
Произношение: post-gress-Q-L, post-gres, пост-грес,
pgsql (пэ-жэ-эс-ку-эль)
Web: http://www.postgresql.org, лицензия: BSD, MIT - like
Российский вендор - компания Postgres Professional
3. Важнейшие свойства PostgreSQL
Надежность и устойчивость PostgreSQL
Надежность PostgreSQL является известным и доказанным
фактом на примере многих проектов, в которых PostgreSQL
работает без единого сбоя и при больших нагрузках на
протяжении нескольких лет.
Кроссплатформенность
PostgreSQL поддерживает все виды Unix, включая Linux,
FreeBSD, Solaris, HPUX, Mac OS X, а также MS Windows.
Конкурентная работа при большой нагрузке
PostgreSQL использует многоверсионность (MVCC) для
обеспечения надежной и быстрой работы в конкурентных
условиях под большой нагрузкой.
Масштабируемость
PostgreSQL отлично использует современную архитектуру
многоядерных процессоров - его производительность растет
линейно до 64-х ядер. Кластерные решения на базе Postgres
XL обеспечивают горизонтальную масштабируемость.
Расширяемость
Расширяемость PostgreSQL позволяет добавлять новую
функциональность, в том числе и новые типы данных, без
остановки сервера и своими силами.
Доступность
PostgreSQL распространяется под лицензией BSD, которая не
накладывает никаких ограничений на коммерческое
использование и не требует лицензионных выплат. Вы можете
даже продавать PostgreSQL под своим именем !
Независимость
PostgreSQL не принадлежит ни одной компании, он развивается
международным сообществом, в том числе и российскими
разработчиками. Независимость PostgreSQL означает
независимость вашего бизнеса от вендора и сохранность
инвестиций.
Превосходная поддержка
Сообщество PostgreSQL предоставляет квалифицированную и
быструю помощь. Коммерческие компании предлагают свои
услуги по всему миру.
7. Этапы развития PostgreSQL
Стабилизация работыСтабилизация работы
Совместимость с SQL
стандартами
Совместимость с SQL
стандартами
Возможности уровня
Enterprise / простота
использования
Возможности уровня
Enterprise / простота
использования
1996 1998 2001 2016
Базовая функциональность
JDBC
MVCC
Optimizer Stats
PL/pgSQL
Стабилизация
Исправление сбоев в работе
Очистка кода
Культура совершенства
Стандарты
SQL 92 Joins
Prepared queries
Foreign Keys
Функциональность ядра
Write Ahead Log
Prepared Queries
Info. Schema
Auto Vacuum
Возможности уровня Enterprise
Потоковая репликация
Производительность
Вертикальное масштабирование
PITR
pg_upgrade
NoSQL
BDR
Параллелизм
Простота использования
Портирование на Windows
pg_basebackup
Различные инструменты
10. Цикл разработки
● 1-30 сентября 2015 : CF 1
● 1-30 ноября 2015 : CF 2
● 2 января — 8 февраля 2016: CF 3
● 7 января 2016 : 9.5 Release
● 1-31 марта 2016 : Финальный CF для 9.6
● 8 апреля : Feature Freeze
● Июнь 2016 : 9.6 beta
● Сентябрь 2016 : 9.6 release
● 1-30 сентября 2016 : CF 1 для 9.7 ….
11. Свежие новости PostgreSQL
9.5
● Upsert
● Row Level Security
● BRIN index
● Ускоренная сортировка (abbreviated keys)
● Grouping sets, cube, rollup (многоуровневые
агрегаты)
● Улучшение FDW (JOIN pushdown, import schema)
● Table sample
UNFORK
● Citus DB – распределенная СУБД в виде extension
● GreenPlum – на пути к этому
12. Что нас ждет «завтра» 9.6 ?
● Параллельное исполнение запросов (sequence scan, join, aggregate)
● Улучшение работы VACUUM с большими таблицами
● Улучшение FDW (push down join, DML, sort)
● CREATE ACCESS METHOD, GENERIC WAL
• Возможность создания полноценные методы доступа как
расширения !
• Миллисекундный полнотекстовый поиск (с 2012 года !)
• CREATE INDEX … USING RUM !
● Улучшение полнотекстового поиска — поиск фраз, улучшена
поддержка словарей, tsvector editing functions
● ev,sv — редактирование и показ представлений
● KNN для CUBE
● Многоколоночная статистика
● Wait monitoring
● Покрывающие (covering) индексы ?
● Параллельное создание GIN-индексов ?
● Масштабирование на большое количество ядер ?
15. Завтра (9.6). DBA
● Немного счастья для DBA
– VACUUM FREEZE не будет трогать уже «замороженные»
блоки — сильное облегчение для больших и нагруженных
проектов
– idle_in_transaction_session_timeout - решает проблему «idle in
transaction"
– a generic command progress reporting facility
– simple VACUUM progress reporting — можно следить за
выполнением вакуума pg_stat_progress_vacuum
– per-tablespace effective_io_concurrency
– Поддержка нескольких синхронных реплик
– Новый режим синхронной репликации - 'remote_apply'
23. 20 лет развития постгреса
Функциональность
1995 2000 2005 2010 2015
Postgres95
1stcommit
PostgreSQL
1й российский патч
интернационализация
Триггеры
Изоляциятранзакций
MVCC
WAL
GIN
HStore
FTS KNN GiST
SP-GiST
JSONB
Create AM Generic WAL
PITR
Streaming rep
Sync rep
Cascading rep
Logical decoding
GiST
XML
CTE
FDW
Windows
JSON
RLS, Upsert
parallel exec, FDW pushdown
CitusDB unfork
Greenplum
10.0?
9.6
9.5
9.0
8.0
7.0
6.0
Lateral
HOT
Mat VIEW
IOS
SSI
Exclusion constraints
24. Создание компании Postgres Professional
Январь-апрель 2015 г.
Раньше:
Postgres использовали
на свой страх, риск
и в удовольствие.
Теперь:
Есть российская компания — вендор,
обладающая компетенцией разработчиков.
25. Postgres Professional
Российский вендор PostgreSQL в России
●
Поддержка, разработка, консалтинг, обучение
●
Тему технологической независимости СУБД пропагандируем с 2011 г.
●
Члены международного сообщества
●
Участники и спонсоры международных конференций (Канада, Австрия,
Бразилия)
●
PgConf.Russia 2015 и 2016 - крупнейшие в мире конференция по
PostgreSQL
В направлениях, где мы ведем разработку, PostgreSQL
является лидером* среди РСУБД
●
геоинформационные системы, слабоструктурированные данные,
полнотекстовый поиск, расширяемость
Все российские ключевые международно признанные
разработчики PostgreSQL работают в нашей компании
В нашей команде 4 кандидата наук: 3 – по PostgreSQL и технологиям БД.
Сотрудничаем с МГУ и СПбГУ.
31. Пирамида «импортозамещения»
Хороший Open Source продукт (Postgres)
Существенный российский вклад
Рост компетенции
Экосистема отрасли
Импортозамещение
Технологическая
независимость
Конкурентоспособность
на мировом рынке
32. Год жизни компании
2015
Февраль. Регистрация компании
Апрель. Начало работы
Июнь. Первое место среди проектов по импортозамещению СУБД
Первая крупная разработка — мониторинг ожиданий
Июль. Сборки под Windows и 1С
Июль. Готов курс DBA1.
Октябрь. Достижение 2 млн транзакций в секунду на Power 8
2016
Январь. Готов курс DBA2
Выпуск PostgresPro 9.5.0.1
Февраль. PgConf.Russia 2016
Март. Выпуск PostgresPro 9.5.1.2
Вхождение в Единый реестр российского ПО
Апрель. Выпуск PostgresPro 9.5.2.1
7 докладов на международных
конференциях (PGCon, PGConf)
20 докладов на российских
Конференциях
65 патчей в ядро PostgreSQL 9.6
33. Российская СУБД Postgres Pro
Postgres Pro = PostgreSQL + …
1) Более ранний доступ к новым разработкам (в
первую очередь, российским)
2) Поддержка со стороны российской компании-
разработчика
3) Присутствие в Едином Реестре Российского ПО
Открытая версия
● Open Source
● BSD-подобная лицензия
Закрытая версия
● Соответствие российским
требованиям ИБ
● Сертификация ФСТЭК (5 НСД,
4 НДВ) — в процессе
● Более высокие уровни — в
планах
34. Что такое Postgres Pro ?
1.Российский форк PostgreSQL, вошедший в Реестр
Российского ПО
2.Наши разработки ядра PostgreSQL, которые ещё не успели
войти в релиз, но закоммичены в апстрим
3.Бэкпорты из 9.6, которые мы считаем полезными
4.Полезные расширения (не только наши)
5.Возможность оперативно реагировать на запросы клиентов
Postgres Pro предоставляет доступ к новой функциональности и
улучшениям раньше, и позволяет быстрее реагировать на запросы
клиентов
35. Что еще есть в Postgres Pro ?
● Увеличение производительности на многоядерных системах:
● Улучшение полнотекстового поиска:
поиск фраз, словарь=extension,
словари в shared memory
● Покрывающие индексы. Поддержка конструкции INCLUDES в
CREATE INDEX. https://pgconf.ru/2016/89847
● Переносимость: ICU
● Модуль pg_trgm: нечеткий поиск подстроки
● Модуль pageinspect: доступ к внутреннему представлению данных
● Модуль sr_plan: сохранение планов запросов
● Модуль dump_stat: дамп и восстановление статистики
● Модуль JSQuery
● Мониторинг ожиданий (WAIT-мониторинг с сэмплингом)
● Libpq с поддержкой failover
36. Скоро в Postgres Pro (9.5.*)
● Секционирование таблиц без накладных расходов
● Инкрементальный бэкап на уровне блоков
● Компрессия B-Tree индексов
● Миллисекундный полнотекстовый поиск (на основе CREATE
ACCESS METHOD и GENERIC WAL)
https://wiki.postgresql.org/images/2/25/Full-text_search_in_PostgreSQL_in_milliseconds
-extended-version.pdf
● Мониторинг ожиданий
http://akorotkov.github.io/blog/2016/08/26/wait_monitoring_9_6/ ,
http://www.postgresql.org/docs/devel/static/monitoring-stats.html#WAIT-EVENT-TABLE
38. Секционирование
Уже сделано в Postgres Pro (расширение pg_pathman):
● Хранение метаданных секций с бинарный поиск по
при планировании запроса
● Select, Insert, Update, Delete
● RANGE partitioning
До сих пор:
● Делается через наследование таблиц (мега-костыль ?)
● Работает неэффективно
39. Секционирование (планы на 9.7)
● Выбор секций во время выполнения запроса
● Упорядоченная выдача выборок из секций для
ускорения Merge join и сортировки.
● Оптимизация Hash join при секционировании по
ключу JOIN
● LIST-partitioning
● HASH-partitioning
● Декларативный синтаксис (совместно с NTT)
41. Секционирование
Производительность
SELECT, INSERT, UPDATE
pg_partman —
наследование таблиц
pg_pathman —
разработка Postgres Pro
Подробности:
https://pgconf.ru/2016/89633
http://akorotkov.github.io/blog/categories/partitioning/
http://postgrespro.ru/blog/pgsql/pg_pathman
42. Образовательная деятельность
DBA1
Июль,
Август Москва
12-14.10 Барнаул
10-12.11 Ульяновск
2-4.12 Омск
16-18.12 Тверь
23-25.12 Улан Удэ
12-14.03.2016 Казань,
28-30.03 Новосибирск
Тюмень
Санкт-Петербург
Челябинск
УЦ «Форс»
DBA2
9,16.02 Яндекс
25.02 ГАИШ
Hacking PostgreSQL
С 25.02.2016 Яндекс
Технологии СУБД
2016-2017 уч. Год СПбГУ
Заинтересовались: МГУ, Киров, Омск,
Челябинск, Барнаул, ВШЭ, МЭСИ, УрФУ,
Красноярск
https://www.postgrespro.ru/education
DEV1, DEV2,
сертификация ….
43. План разработок Postgres Pro :2019
● HA Мультимастер
● Доработки безопасности для
сертификации на высокие уровни
секретности
● Инкрементальный и частичный бэкап
● Секционирование (partitioning)
● Управление планами запросов
● Планировщик заданий
● Расширяемые индексные методы
доступа
● Эффективное хранение временных
объектов
● Компрессия данных
● Сбор детальной статистики и метрик
мониторинга
● Средства упрощения миграции с
Oracle
● Средства управления СУБД
● CREATE INDEX USING RUM (GIN2)
● Advanced multicore parallelism
● Incremental materialized views
● Облачная версия СУБД
● Запись и воспроизведение нагрузки
● Удобный и расширяемый синтаксис
для поиска и обновления JSON
● Эффективная работа с массивами,
интервалами и иерархическими
данными
● Распараллеливание запросов в
мультимастере
● Улучшения планировщика
(корреляции, планирование на
этапе выполнения)
● Улучшения сборки и тестирования
(CMake, unit-тесты)
44. План разработок Postgres Pro :2019
● Advanced FTS (быстрый поиск,
обратная задача, конф. парсер, TF/IDF)
● Индексы с быстрой вставкой и
обновлением
● Адаптивное построение запросов с
помощью машинного обучения
● JIT компиляция
● Sharding
● Эффективная работа с неточными,
битемпоральными, сферическими,
timeseries данными
● Индесная поддержка для
расширяемого синтаксиса JSON
● Эффективная поддержка NUMA
● Распределённая система тестирования
● Альтернативные табличные движки:
columnar, in-memory
● Сжатие передаваемых данных
● Оптимизация работы с диском
(double buffering, SSD)
● Система тестирования
производительности (TPC-* из
коробки)
● CREATE INDEX USING VODKA
● In-memory columnar storage
● Sharding с автоматическим
распределением по узлам
● Мониторинг кластера
● Асинхронный протокол
взаимодействия
● Встроенный балансировщик
нагрузки и пул коннектов
● Поддержка тета-соединений
● Эффективная встроенная очередь
● Оптимизация работы с SSD
45. Мы ищем таланты
● Разработчики, инженеры, QA, PM, технические
писатели, стажеры (студенты), люди науки
• Работать в команде, «жить» в сообществе
• Уметь и любить учиться
• Любить вызовы
• Держать цель
● Возможна удаленная работа
46. Российское сообщество
● Самое организованное — несколько тысяч человек
● Митапы при поддержки крупных компаний
● Крупнейшие в мире конференции по постгресу:
● летом PGDay.ru в Санкт-Петербурге (2014, 2015, 2016)
● Зимой PGConf.ru в Москве (2015, 2016)
● Секции и квартирники на крупнейших конференциях
● Highload++, RIT, Codefest, Stachka
● Участвуем в международных конференциях
● PGConf.EU, PGCon.org
● Свободные курсы DBA1, DBA2, «Hacking Postgres» от
Postgres Professional
48. 50 способов помочь сообществу
Ядро
Разработка, review, тестирование,
reporting bugs
Экосистема
Расширения, драйверы, ORM, средства
мониторинга… поддержка Pg в
прикладном ПО
Создание дистрибутивов, пакетирование
Документация
Улучшение, перевод, публикация статей,
книг, учебных, маркетинговых
материалов…блоггинг!
Расскажите о своей истории с
PostgreSQL!
Общение, образование
Создание локальных сообществ
Проведение конференций,
митапов, семинаров, учебных
курсов.
Внедрите PostgreSQL!
В Вашей компании. Запустите
учебный курс в Вашем ВУЗе
Спонсорство
Спонсируйте разработку нужной
Вам функциональности.
Спонсируйте мероприятие.