Pull to refresh
4
0

Пользователь

Send message

Наполняем до краев: влияние порядка столбцов в таблицах на размеры баз данных PostgresQL

Level of difficultyMedium
Reading time8 min
Views18K

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

И что же там прячется?
Total votes 59: ↑58 and ↓1+57
Comments19

Разбираемся с Redis

Reading time19 min
Views225K

Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.

Читать далее
Total votes 64: ↑63 and ↓1+62
Comments7

Рассуждения об asyncio.Semaphore

Reading time6 min
Views7.7K

В Кремниевой долине есть очень особенный ресторан фаст-фуда, который всегда открыт. Там имеется один столик, за ним может разместиться лишь один посетитель, которому дадут совершенно фантастический гамбургер. Когда туда приходишь — ждёшь до тех пор, пока не настанет твоя очередь. Потом хозяин ресторана подведёт тебя к столику, и, это же Америка, тебе зададут, кажется, бесконечное количество вопросов о том, как приготовить и как подать твой гамбургер.

Сегодня, правда, мы не собираемся говорить о кулинарных изысках. Мы говорим о системе очередей, которую используют рестораны. Если вам повезло и вы прибыли в ресторан тогда, когда столик пуст, и когда никого в очереди нет, вы можете прямо сразу за него сеть. В противном случае хозяин даст вам специальный пейджер (из бескрайней кучи таких пейджеров!) и вы можете бродить вокруг ресторана до тех пор, пока этот пейджер не подаст сигнал. Дело хозяина ресторана — обеспечить, чтобы посетители попадали бы за столик в порядке их прибытия. Когда настанет ваша очередь, хозяин отправит сигнал на ваш пейджер, а вы вернётесь в ресторан, где сможете усесться за столик.

Если вы передумали — можете вернуть пейджер хозяину, а он, ни слова не сказав, спокойно его заберёт. Если ваш пейджер уже сработал, то хозяин, если на вас очередь не оканчивается, вызовет следующего посетителя. Посетители этого ресторана всегда вежливы, они, получив пейджер, не уходят украдкой, никого не предупредив. А хозяин всегда честен и не усадит за столик кого-то, кто стоит в очереди за вами, даже если вам, чтобы вернуться в ресторан после срабатывания пейджера, нужно некоторое время.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments2

Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS

Reading time14 min
Views27K

Привет, меня зовут Иван, и я делаю Авито Доставку. Когда пользователь покупает товар с доставкой, мы показываем ему список отделений служб доставки с ценами. Цена доставки может меняться от отделения к отделению. Мы смотрим на область карты, где покупатель ищет товар и информацию по объявлению, например, координаты продавца, вес и размеры товара. И на выходе показываем человеку список отделений с адресами и ценой доставки в каждое из них.


В ходе разработки калькулятора цены доставки возникла такая задача: есть структура базы данных PostgreSQL и запрос к ней от сервиса на Go. Нужно заставить всё это работать достаточно быстро. В итоге нам удалось поднять пропускную способность сервиса с 50 до 5000 RPS и выявить пару нюансов при общении сервиса с базой. Об этом и пойдёт рассказ.


Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments44

Как работать с Postgres в Go: практики, особенности, нюансы

Reading time10 min
Views130K


Неожиданное поведение приложения в отношении работы с базой приводит к войне между DBA и разработчиками: DBA кричат: «Ваше приложение роняет базу», разработчики — «Но ведь до этого всё работало!». Хуже всего, что DBA и разработчики не могут помочь друг другу: одни не знают про нюансы работы приложения и драйвера, другие не знают про особенности, связанные с инфраструктурой. Было бы неплохо такой ситуации избежать.


Надо понимать, часто недостаточно полистать go-database-sql.org. Лучше вооружиться чужим опытом. Еще лучше, если это будет опыт, полученный кровью и потерянными деньгами.

Total votes 76: ↑73 and ↓3+70
Comments29

«Ленивый сахар» PostgreSQL

Reading time7 min
Views37K

SQL - декларативный язык - то есть вы описываете "что" хотите получить, а СУБД сама решает, "как" именно она будет это делать. Некоторые из них при этом позволяют им "подсказывать", как именно лучше выполнять запрос, но PostgreSQL - нет.

Тем не менее, "синтаксический сахар" некоторых языковых конструкций позволяет не только писать меньше кода (учите матчасть!), но и добиться, что ваша база будет делать часть вычислений "лениво", только при фактической необходимости.

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments15

10 простых шагов: мигрируем с CentOS 8 на RockyLinux или AlmaLinux

Reading time5 min
Views13K

Прекращение поддержки CentOS 8 и переход к модели непрерывных обновлений в CentOS Stream заставили корпоративных заказчиков искать альтернативные решения. Мы написали пошаговую инструкцию по переходу на RockyLinux или AlmaLinux — популярные бесплатные дистрибутивы, бинарно совместимые с RedHat Enterprise Linux (RHEL).

Почитать мануал
Total votes 7: ↑7 and ↓0+7
Comments21

11 хитростей Chrome DevTools, которые помогут Вам стать Senior FrontEnd-разработчиком

Reading time4 min
Views57K

Я полагаю, вы знакомы с инструментами разработчика браузера Chrome. Мы можем использовать его для просмотра сетевых запросов, анализа производительности веб-страницы и отладки последних функций JavaScript.

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

Давайте посмотрим
Total votes 62: ↑56 and ↓6+50
Comments23

Где хранить секретные файлы на случай БП

Reading time7 min
Views37K


Всю информацию человека можно разделить по степени важности, примерно так:

  • системные бэкапы (важность 1/10);
  • текущие рабочие файлы (3);
  • личный архив: фотографии, видео (6);
  • копии бумажных документов (8);
  • секреты: ключи, пароли, кошельки (10/10).

Терять файлы всегда неприятно. Поэтому мы делаем резервные копии. Но степень параноидальности усилий по защите информации зависит от важности. Есть категория файлов, которую нельзя терять ни при каких обстоятельствах, даже в случае БП. Это наши главные секреты, то есть ключи, пароли и кошельки.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments12

MeteorJS, Nginx, mongodb, iptables… продакшен

Reading time15 min
Views15K

Здравствуйте, меня зовут Александр Зеленин, и я веб-разработчик сисадмин.


К сожалению, вся информация о полноценной развёртке приложения на MeteorJS довольно разрозненна, и приходится вручную решать миллион задач. В этой статье я хочу разобрать самую базовую (но уже достаточную для безопасной работы в продакшене) настройку сервера и последующий процесс ручного деплоя.


Разворачивать будем на Ubuntu 16, но в целом схема на 99% совпадает и для Debian 8.

Читать дальше →
Total votes 46: ↑36 and ↓10+26
Comments69

Способы отладки JS на клиенте

Reading time2 min
Views23K

Применительно к разработке на create-react-app (CRA) в браузере и в IDE WebStorm. Если вам известны какие-либо другие способы отладки, большая просьба поделиться знаниями.

Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments21

Новости «Mail.Ru для бизнеса»

Reading time5 min
Views16K


Всем привет! Меня зовут Олег, я руководитель проекта «Mail.Ru для бизнеса». Так сложилось, что мы регулярно рассказываем на Хабре об изменениях в сервисе, чтобы получить от вас обратную связь по улучшению продукта («хотелки» хабраюзеров помечены в нашем бэклоге отдельным тэгом).

Продолжая нашу хорошую традицию, мы даем любому хабраюзеру возможность попробовать наш сервис в деле. В комментариях под этим постом можно написать, что вы хотите попробовать «Mail.Ru для бизнеса», и мы отправим вам промокод на бесплатный домен с подключенным сервисом.

Вот самое важное из того, что мы успели сделать за последнее время:
  • онлайн-редактор офисных документов
  • DNS-хостинг
  • уровни администраторов
  • двухфакторная аутентификация
  • новый интерфейс создания пользователей
  • блокировка пользователей
  • синхронизация с Active Directory
  • миграция с Exchange: закрытое бета-тестирование

А теперь обо всем этом — подробнее.
Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments35

Information

Rating
Does not participate
Registered
Activity