Это уже четвёртая в общей сложности, но первая в 2021-м году подборка занятных случаев из нашей практики эксплуатации разнообразной инфраструктуры. Она затронет такие технологии, как ClickHouse вместе с ZooKeeper (в их контексте также напомню про недавно описанную нами аварию), MySQL (да, снова будем обновлять эту СУБД), DNS в Kubernetes (любимая многими тема, но здесь всё дело в сторонней утилите…). Поехали!
Рубрика «mysql» - 3
Практические истории из наших SRE-будней. Часть 4
2021-06-02 в 7:29, admin, рубрики: clickhouse, devops, DNS, kubernetes, mysql, zookeeper, Администрирование баз данных, Блог компании Флант, системное администрированиеКак новость про +4 выходных дня уронила нам базу данных
2021-04-30 в 10:55, admin, рубрики: incident response, mysql, proxysql, Администрирование баз данных, Блог компании Туту.ру, выходные шрёдингера, отказоустойчивость, Серверное администрированиеЭтот день — яркий пример того, как несколько вещей, которые сами по себе не приводят к отказу, могут удачно совпасть. Итак, 23 апреля было совершенно обычным днём, с обычным трафиком и обычной загрузкой ресурсов. Как обычно, с запасом больше трети, чтобы при потере любого из ЦОДов пережить это без проблем. Никто не думал, что к серверному мониторингу нужно прикручивать ещё мониторинг того, что говорит президент на прямой линии, поэтому дальше случилось вот что:
Примерно в 13:30 у нас резко подскочила нагрузка на поиск по авиации и по железнодорожным билетам. Где-то в этот момент РЖД сообщила о перебоях на сайте и в приложении, а мы начали экстренно наливать дополнительные инстансы бекендов во всех ЦОДах.
Но на самом деле проблемы начались раньше. Примерно в 8 утра мониторинг прислал алерт про то, что на одной из реплик базы данных у нас что-то подозрительно много долгоживущих процессов. Но мы это прошляпили, сочли не очень важным.
Читать полностью »
Войны лоббистов и развитие BIM. Часть 5: BlackRock — хозяин всех технологий. Как корпорации контролируют Open source
2021-04-11 в 6:33, admin, рубрики: autodesk, bim, blackrock, cad, CAD/CAM, ifc, legacy, mysql, open source, oracle, строительствоТехнологические гиганты при помощи денег инвестиционных фондов контролируют всё большую часть новых разработчиков и продуктов, перекрывая тем самым путь для новых программ и новых технологий в строительной отрасли.
Сегодняшние лидеры САПР-индустрии: Autodesk, Hexagon, Nemetschek, Bentley, Trimble - хорошо готовятся к будущим угрозам: стандартной тактикой больших корпораций стал агрессивный захват новых рынков и поглощение возможных конкурентов на ранних стадиях развития.
В результате вся САПР-индустрия стала похожа на олигополию, в которой доминирует группа из нескольких компаний. И их положение на вершине становится всё более непоколебимым.
Читать полностью »
«Ваша устаревшая база данных перерастает сама себя». Опыт chess.com
2021-04-08 в 6:47, admin, рубрики: mysql, Администрирование баз данных, Блог компании Флант, партиционирование, Проектирование и рефакторингПрим. перев.: в этой статье сербский «инженер по масштабируемости» нагруженного онлайн-проекта в подробностях рассказывает о своем опыте оптимизации большой БД на базе MySQL. Проведена она была для того, чтобы выдержать резкий рост трафика на сайт, случившийся из-за пандемии.
Примечание: первоначально эта статья была опубликована в блоге моего хорошего друга — unstructed.tech.
Ещё один поиск Вк по фото
2021-03-20 в 12:02, admin, рубрики: AI, big data, devops, face recognition, mysql, python, искусственный интеллект, пет-проект, поисковые технологииЯ люблю ввязываться в авантюры, и за последний месяц об одной из них я пару раз рассказывал друзьям, что вызывало восторг, поэтому решил поделиться с хабравчанами! Эта история про отважные пет-проекты, мощь опен-сорса и саморазвитие, а также основные технические детали. Надеюсь, вас это вдохновит :)
1. Предыстория
Загадочная ситуация с TIME в MySQL
2020-11-06 в 6:56, admin, рубрики: mysql, open source, Блог компании ФлантПрим. перев.: Этот детальный анализ одной, казалось бы, не очень значительной детали в реализации внутри MySQL вызвал закономерные дискуссии о правильности в подходах к разработке известного Open Source-проекта в целом. О том, что же, собственно, выяснил португальский инженер, он повествует в формате, приближенном к детективу…
Многие в 2020 году стали жертвой странного феномена восприятия времени, но некоторые системы управления базами данных манипулируют временем гораздо дольше. Впервые я обратил на это внимание, когда мой друг в одном из своих проектов (Accord — популярный бот для Discord) столкнулся со следующим исключением от коннектора MySQL при использовании с EF Core:
MySqlException: Incorrect TIME value: '960:00:00.000000'
Будучи не слишком сведущим в MySQL (т.к. предпочитаю PostgreSQL по причинам, которые скоро станут очевидными), я на секунду подумал, что неправильным здесь является число часов. Разумно предположить, что значения TIME ограничены 24 часами или что для значений, охватывающих нескольких дней, требуется другой синтаксис — например, 40:00:00:00
будет представлять 40 дней. Но действительность оказалась куда сложнее и запутаннее.Читать полностью »
Восемь интересных возможностей PostgreSQL, о которых вы, возможно, не знали
2020-10-13 в 16:00, admin, рубрики: Booleans can stand alone, Comparing a selection of columns, Convert column data types for free, Custom config parameters, Hardcoded tables, mysql, postgresql, sql, Tables are types, Whole-row references, Администрирование баз данных, Блог компании OTUS. Онлайн-образованиеПривет! Приглашаем на бесплатный Demo-урок «Параллельный кластер CockroachDB», который пройдёт в рамках курса «PostgreSQL». Также публикуем перевод статьи Тома Брауна — Principal Systems Engineer at EnterpriseDB.
В этой статье рассмотрим несколько полезных советов по работе с PostgreSQL:
-
Ссылка на всю строку целиком
-
Сравнение нескольких столбцов
-
Общие табличные выражения
-
Пользовательские параметры конфигурации
-
Сравнение логических значений без "равно"
-
Изменение типа столбца без лишних затрат
Пишем простую ORM с возможностью смены БД на лету
2020-08-23 в 16:18, admin, рубрики: amphp, madelineproto, mysql, orm, php, оптимизация, память процесса, параллельное программирование, паттерны программирования, Проектирование и рефакторинг, Серверная оптимизация
Привет! Карма слита из-за неосторожного комента под холиварной статьей, а значит нужно написать интересный (я надеюсь) пост и реабилитироваться.
Я несколько лет пользуюсь серверным telegram клиентом на php. И как многие пользователи — устал от постоянного роста потребления памяти. Некоторые сессии могут занимать от 1 до 8 гигабайт RAM! Поддержка баз данных была уже давно обещана, но подвижек в этом направлении не было. Пришлось решать проблему самому :) Популярность open source проекта, накладывала интересные требования на pull request:
- Обратная совместимость. Все существующие сессии должны продолжить работать в новой версии (сессия — это сериализованный инстанс приложения в файле);
- Свобода выбора БД. Возможность менять тип хранилища без потери данных и в любой момент, так как у пользователей разные конфигурации окружения;
- Расширяемость. Простота добавления новых типов баз данных;
- Сохранить интерфейс. Код приложения, работающий с данными, не должен меняться;
- Асинхронность. Проект использует amphp, поэтому все операции с базами должны быть неблокирующими;
За подробностями приглашаю всех под кат.
Читать полностью »
Как мигрировать Zabbix с MySQL на PostgreSQL с минимальным downtime
2020-08-02 в 10:09, admin, рубрики: mysql, postgresql, zabbix, системное администрирование
В свете того, что Zabbix с некоторых пор поддерживает TimescaleDB, а тут еще и вышел новый LTS релиз Zabbix, то наверняка многие заинтересовались, как осуществить миграцию с MySQL на PostgreSQL.
Несмотря на текст на картинке, вполне можно просто так взять и мигрировать Zabbix с MySQL на PostgreSQL. В интернете есть немало рецептов такой миграции, например:
Доклад с Zabbix Meetup
Видео с Youtube канала Dmitry Lambert
Но я не нашел ни в одном из таких докладов информации, как же минимизировать downtime вашего мониторинга в случае, если полная миграция занимает несколько часов, что конечно зачастую является неприемлемым.
Ниже я опишу свое решение данной проблемы и те подводные камни, которые пришлось обходить по пути.
Важно упомянуть, что я до сих использую Zabbix 4.0. Возможно, в новых версиях схема БД поменялась и поэтапная миграция, описанная ниже, там невозможна.