Search
Write a publication
Pull to refresh
63
0
Олег @unfilled

User

Send message

Patroni Failure Stories or How to crash your PostgreSQL cluster. Алексей Лесовский

Reading time24 min
Views5.5K


Основная цель Patroni — это обеспечение High Availability для PostgreSQL. Но Patroni — это лишь template, а не готовый инструмент (что, в общем, и сказано в документации). На первый взгляд, настроив Patroni в тестовой лабе, можно увидеть, какой это прекрасный инструмент и как он легко обрабатывает наши попытки развалить кластер. Однако на практике в производственной среде, не всегда всё происходит так красиво и элегантно, как в тестовой лабе.

Распределённые СУБД для энтерпрайза

Reading time8 min
Views6.8K
CAP-теорема является краеугольным камнем теории распределённых систем. Конечно, споры вокруг неё не утихают: и определения в ней не канонические, и строгого доказательства нет… Тем не менее, твёрдо стоя на позициях бытового здравого смысла™, мы интуитивно понимаем, что теорема верна.



Единственное, что не очевидно, так это значение буквы «P». Когда кластер разделился, он решает – то ли не отвечать, пока не будет набран кворум, то ли отдавать те данные, которые есть. В зависимости от результатов этого выбора система классифицируется либо как CP, либо как AP. Cassandra, например, может вести себя и так и так, в зависимости даже не от настроек кластера, а от параметров каждого конкретного запроса. Но если система не «P», и она разделилась, тогда – что?

Ответ на этот вопрос несколько неожиданный: CA-кластер не может разделиться.
Что же это за кластер, который не может разделиться?
А вот

Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС. Павел Молявин

Reading time17 min
Views10K

PGConfRu2019 Павел Молявин — «Готовим PostgreSQL в эпоху DevOps. Опыт 2ГИС»**



Всем привет! Меня зовут Павел! Я работаю в компании 2ГИС. Наша компания – это городской информационный справочник, навигационный сервис. Это очень хорошая штука, которая помогает жить в городе.

Опыт эксплуатации CEPH

Reading time10 min
Views16K
Когда данных становится больше, чем влезает на один диск, самое время задуматься о RAID. В детстве часто слышал от старших: «однажды RAID уйдут в прошлое, объектные хранилища заполонят мир, а ты даже не знаешь, что такое CEPH»,- поэтому первым делом в самостоятельной жизни стало создание своего кластера. Целью эксперимента было ознакомиться с внутренним устройством ceph и понять рамки его применения. Насколько оправдано внедрение ceph в средний бизнес, а в малый? После нескольких лет эксплуатации и пары необратимых потерь данных возникло понимание тонкостей, что не всё так однозначно. Особенности CEPH создают препятствия его широкому распространению, и из-за них эксперименты зашли в тупик. Ниже приводится описание всех пройденных шагов, полученный результат и сделанные выводы. Если знающие люди поделятся опытом и пояснят некоторые моменты — буду благодарен.

Примечание: комментаторы указали на серьёзные ошибки в некоторых допущениях, требующие пересмотра всей статьи.
Читать дальше →

Managing PostgreSQL at Gitlab.com. Jose Cores Finotto

Reading time14 min
Views2.3K

Managing PostgreSQL at Gitlab.com. Jose Cores Finotto.



Большое спасибо! Добро пожаловать на наш разговор о PostgreSQL в Gitlab. Мы поговорим только об основных моментах. И более подробно вы можете узнать на сайте Gitlab.com.

Читать дальше →

Управление высокодоступными PostgreSQL кластерами с помощью Patroni. А.Клюкин, А.Кукушкин

Reading time62 min
Views161K

Расшифровка доклада/tutorial "Управление высокодоступными PostgreSQL кластерами с помощью Patroni". А.Клюкин, А.Кукушкин


Patroni — это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компаниями как Red Hat, IBM Compose, Zalando и многими другими. С его помощью можно преобразовать систему из ведущего и ведомых узлов (primary — replica) в высокодоступный кластер с поддержкой автоматического контролируемого (switchover) и аварийного (failover) переключения. Patroni позволяет легко добавлять новые реплики в существующий кластер, поддерживает динамическое изменение конфигурации PostgreSQL одновременно на всех узлах кластера и множество других возможностей, таких как синхронная репликация, настраиваемые действия при переключении узлов, REST API, возможность запуска пользовательских команд для создания реплики вместо pg_basebackup, взаимодействие с Kubernetes и т.д.


Слушатели мастер-класса подробно узнают, как работает Patroni, получат практические навыки настройки высокодоступных кластеров на его основе, познакомятся с различными дополнительными возможностями и поучаствуют в диагностике проблем. Будут рассмотрены следующие темы:


  • область применения: какие задачи HA успешно решаются Patroni
  • обзор архитектуры
  • создание тестового кластера
  • утилита patronictl
  • изменение конфигурации PostgreSQL для кластера, управляемого Patroni
  • мониторинг с помощью API
  • подходы к переключению клиентов
  • дополнительные возможности: ручное переключение, перезагрузка по расписанию, режим паузы
  • настройка синхронной репликации
  • расширяемость и универсальность
  • частые ошибки и их диагностика

Мониторим базу PostgreSQL — кто виноват, и что делать

Reading time7 min
Views37K
Я уже рассказывал, как мы «ловим» проблемы PostgreSQL с помощью массового мониторинга логов на сотнях серверов одновременно. Но ведь кроме логов, эта СУБД предоставляет нам еще и множество инструментов для анализа ее состояния — грех ими не воспользоваться.

Правда, если просто смотреть на них с консоли, можно очень быстро окосеть без какой-либо пользы, потому что количество доступных нам данных превышает все разумные пределы.


Поэтому, чтобы ситуация все же оставалась контролируемой, мы разработали надстройку над Zabbix, которая поставляет метрики, формирует экраны и задает единые правила мониторинга для всех серверов и баз на них.

Сегодняшняя статья — о том, какие выводы можно сделать, наблюдая в динамике различные метрики баз PostgreSQL-сервера, и где может скрываться проблема.
Читать дальше →

ClickHouse для продвинутых пользователей в вопросах и ответах

Reading time44 min
Views37K

В апреле инженеры Авито собирались на онлайн-посиделки с главным разработчиком ClickHouse Алексеем Миловидовым и Кириллом Шваковым, Golang-разработчиком из компании Integros. Обсуждали, как мы используем систему управления базами данных и какие сложности у нас возникают.


По мотивам встречи мы собрали статью с ответами экспертов на наши и зрительские вопросы про бэкапы, решардинг данных, внешние словари, Golang-драйвер и обновление версий ClickHouse. Она может быть полезна разработчикам, которые уже активно работают с СУБД «Яндекса» и интересуются её настоящим и будущим. По умолчанию ответы Алексея Миловидова, если не написано иное.


Осторожно, под катом много текста. Надеемся, что содержание с вопросами поможет вам сориентироваться.


Читать дальше →

Как научиться разработке на Python: новый видеокурс Яндекса

Reading time6 min
Views257K
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Читать дальше →

Сохраните в закладках эту статью, если вы новичок в Python (особенно если изучаете Python сами)

Reading time6 min
Views52K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Bookmark this if you are new to Python (especially if you self-learn Python)" в двух частях (1, 2) c простыми, но полезными советами и трюками в Python.



Если из-за скучной карантинной жизни вы решили погрузиться в Python, поздравляю. Вы столкнулись с самым быстрорастущим языком программирования. Я уверен, что вы уже знаете некоторые преимущества Python, такие как его простота, легкость в освоении и т.д. Это также основные причины, по которым я изучил Python пять лет назад. Я надеюсь, что вы сможете изучать Python более эффективно и наслаждаться этим процессом, и для этого я подготовил список простых, но полезных трюков и советов.


Уточнение: в настоящее время я использую Python 3.8. Если вы столкнулись с какими-либо проблемами во время запуска моих примеров, пожалуйста, проверьте, не связано ли это с вашей версией Python.

Читать дальше →

Практика использования Spark SQL, или Как не наступить на грабли

Reading time17 min
Views43K
Если вы работаете с SQL, то вам это будет нужно очень скоро. Apache Spark – это один из инструментов, входящих в экосистему Hadoop, который обрабатывает данные в оперативной памяти. Одним из его расширений является Spark SQL, позволяющий выполнять SQL-запросы над данными. Spark SQL удобно использовать для работы посредством SQL-запросов с большими объемами данных и в системах с высокой нагрузкой.

Ниже вы найдёте некоторые нехитрые приёмы по работе со Spark SQL:

  • Как с помощью сбора статистики и использования хинтов оптимизировать план выполнения запроса.
  • Как, оставаясь в рамках SQL, эффективно обрабатывать соединения по ключам с неравномерным распределением значений (skewed joins).
  • Как организовать broadcast join таблицы, если её размер слишком велик.
  • Как средствами Spark SQL понять, сколько приложение Spark реально использовало памяти и ядер кластера в развёртке по времени.
Читать дальше →

JSON Schema. Быть или не быть?

Reading time14 min
Views128K
Архитектура: искусство делать излишнее необходимым.

Фредерик Кислер

Ни для кого давно уже не секрет, что для любого web-сервиса на протоколе SOAP с сообщениями в формате XML верным и проверенным временем решением является предварительная разработка XML Schema (xsd-схемы), описывающей типы данных и структуру XML сообщений. При этом подходе у разработчиков существует явное преимущество: у них есть строгие стандартизированные правила по структуре сообщений, которые заданы в схеме, число правил конечно, и они позволяют автоматизировать проверку любого нового сообщения в формате XML.
Читать дальше →

Про фразовые глаголы

Reading time7 min
Views65K
Фразовые глаголы английского языка гораздо проще, чем кажутся. Они работают точно так же, как в русском языке приставки. Выдающийся советский актёр Зиновий Гердт, узнав однажды о недостойном поступке, совершённом знакомым ему писателем, сказал: «Разрешите с вами раззнакомиться». Думаю, мало кто слышал в живой речи глагол «раззнакомиться». Но интуитивно всё равно понятно, что это противоположность «ПО-знакомиться».

Почему это так легко и понятно? Потому что в раннем детстве мы глубоко усвоили значения русских приставок и с тех пор оперируем ими легко и бессознательно. Так же легко и бессознательно 7-8-летние английские дети оперируют частицами во фразовых глаголах, на ходу сочиняют новые фразовые глаголы, которых нет ни в одном словаре.

Безответственные преподаватели рекомендуют значения фразовых глаголов «просто запоминать», не пытаясь понять их внутреннюю логику. Это порочная практика: фразовых глаголов только самых распространённых – тысячи. «Выучить» их принципиально невозможно. Вот, скажем, let – это «позволять, пускать». А фразовый глагол «let in on» означает «посвящать в тайну». Запомнить такое способен только человек, который понимает переносные значения частиц, образующих фразовые глаголы.

Если правильно усвоить эти переносные значения, можно начать понимать даже такие фразовые глаголы, с которыми сталкиваешься впервые. Знание нескольких принципов освобождает от необходимости знания многих фактов.
Читать дальше →

Переход от монолитного Data Lake к распределённой Data Mesh

Reading time25 min
Views43K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh» автора Zhamak Dehghani (Жамак Дегани)(все изображения взяты из этой же статьи).

Все крупные компании сейчас пытаются строить огромные централизованные хранилища данных. Или же ещё более огромные кластерные Data Lakes (как правило, на хадупе). Но мне не известно ни одного примера успешного построения такой платформы данных. Везде это боль и страдание как для тех, кто строит платформу данных, так и для пользователей. В статье ниже автор (Жамак Дегани) предлагает совершенно новый подход к построению платформы данных. Это архитектура платформы данных четвертого поколения, которая называется Data Mesh. Оригинальная статья на английском весьма объёмна и откровенно тяжело читается. Перевод так же получился немаленьким и текст не очень прост: длинные предложения, суховатая лексика. Я не стал переформулировать мысли автора, дабы сохранить точность формулировок. Но я крайне рекомендую таки продраться через этот непростой текст и ознакомиться со статьёй. Для тех, кто занимается данными, это будет очень полезно и весьма интересно.

Евгений Черный

Немало компаний инвестируют в следующее поколение Data Lake с надеждой упростить доступ к данным в масштабе всей компании и предоставить бизнесу инсайты и возможность принимать качественные решения автоматически. Но текущие подходы к построению платформ данных имеют схожие проблемы, которые не позволяют достигнуть поставленных целей. Чтобы решить эти проблемы нам необходимо отказаться от парадигмы централизованного Data Lake (или его предшественника – хранилища данных). И перейти к парадигме, основанной на современной распределённой архитектуре: рассматривать бизнес-домены как приоритет первого уровня, применять платформенное мышление для создания инфраструктуры с возможностью самообслуживания и воспринимать данные как продукт.

image
Читать дальше →

ETL процесс получения данных из электронной почты в Apache Airflow

Reading time8 min
Views8.6K


Как бы сильно не развивались технологии, за развитием всегда тянется вереница устаревших подходов. Это может быть обусловлено плавным переходом, человеческим фактором, технологическими необходимостями или чем-то другим. В области обработки данных наиболее показательными в этой части являются источники данных. Как бы мы не мечтали от этого избавиться, но пока часть данных пересылается в мессенджерах и электронных письмах, не говоря и про более архаичные форматы. Приглашаю под кат разобрать один из вариантов для Apache Airflow, иллюстрирующий, как можно забирать данные из электронных писем.

Читать дальше →

Кластер Elasticsearch на 200 ТБ+

Reading time14 min
Views24K


С Elasticsearch сталкиваются многие. Но что происходит, когда хочешь с его помощью хранить логи «в особо крупном объёме»? Да ещё и безболезненно переживать отказ любого из нескольких дата-центров? Какой стоит делать архитектуру, и на какие подводные камни наткнёшься?


Мы в Одноклассниках решили при помощи elasticsearch решить вопрос лог-менеджмента, а теперь делимся с Хабром опытом: и про архитектуру, и про подводные камни.

Читать дальше →

Поиск и устранение проблем в Postgres с помощью pgCenter. Алексей Лесовский

Reading time23 min
Views14K

Предлагаю ознакомиться с расшифровкой доклада начала 2019 года Алексея Лесовского — «Поиск и устранение проблем в Postgres с помощью pgCenter»


Время от времени при эксплуатации Postgres'а возникают проблемы, и чем быстрее найдены и устранены источники проблемы, тем благодарнее пользователи. pgCenter это набор CLI утилит которые является мощным средством для выявления и устранения проблем в режиме "здесь и сейчас". В этом докладе я расскажу как эффективно использовать pgCenter для поиска и устранения проблем, в каких направлениях осуществлять поиск и как реагировать на те или иные проблемы, в частности, как:


  • проверить, все ли в порядке с Postgres'ом;
  • быстро найти плохих клиентов и устранить их;
  • выявлять тяжелые запросы;
  • и другие полезные приемы с pgCenter.

Что накапать в глаз, чтобы не чесался

Reading time9 min
Views19K

Аллергопробы. Ищем тот самый мятлик, на который аллергия

Коты начинают репетировать радостные вопли под окном, ненормальный скворец снова решил, что кондиционер отличное место для гнезда, а солнце упорно намекает, что зима почти закончилась.

Все радуются. А я страдаю в предвкушении всех радостей аллергии на пыльцу, когда хочется выходить на улицу исключительно в скафандре. Мне почему-то кажется, что на Хабре найдётся немало собратьев по несчастью, и им будет интересно разобраться, что это за гадость и как с ней жить. А ещё я расскажу, зачем в моей дамской сумочке лежит коробка Преднизолона и Блефарогель.
Читать дальше →

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Date of birth
Registered
Activity