Русский
Открыть в Telegram
ЧЧат HighLoad++: пока собирается билд

Чат HighLoad++: пока собирается билд

@HighLoadTalks · группа · Технологии · в индексе с 24.05.2026
5 201участников
38пишущих за 30 дней
293сообщений за 30 дней
38 739сообщений в индексе
P
Mikhail IvantsovДавай упростим. Основная логика - управление данными. Данные не хранятся в кеше, они хранятся в постоянном хранилище (в анализируемых РСУБД). Основная нагрузка в самом медленном узле - дисковой подсистеме. Каждая СУБД решает проблемы с медленным доступом к данным хранилища своим способом. Вот это вс
Как показывает практика, документация и открытый код (если есть) - это не так. Данные с диска надо не просто прочитать. Во-первых данные в современных полноценных RDBMS лежат не просто так, а в страницах. И вот уже первая проблема - как получить список страниц для таблицы на 100Tb. Далее, этот список будет хранится не в 4-м измерении, а где то. Это "где то" - это и есть промежуточные таблицы. Да, можно конечно на каждый чих городить спец контейнеры. Но никто в здравом уме так делать не будет. Ибо поддерживать это всё совершенно невозможно, а велосипедов придется изобрести на 200 лет вперед. Но не исключаю. И это, мы только получили список страниц! Далее читаем страницы и кладем их в кеш. Чтобы потом с этими данными работать вы должны: 1. Иметь сопоставление страниц на диске со страницами в памяти 2. Иметь сопоставление между строками и адресами внутри страницы Едем дальше - надо применить условия WHERE. Это значит, что для каждой строки надо: 1. Найти ее внутри страницы 2. Найти поле внутри строки 3. Применить условие И тут работает всё тот же движок, описанный ранее, который не только создает контейнеры для хранения, но и предоставляет интерфейсы для их использования. И хотя на словах это всё выглядит просто - в реальности это создает дичайший оверхед. Тот самый порядок между PG и Oracle. Далее идут индексы - и снова - нам надо: 1. Прочитать страницы из памяти, да еще не просто так а в соответствии с алгоритмом B-дерева. Опять работает движок. 2. Отфильтровать по этому индексу строки и получить OID или RawId. Опять работает движок. 3. Взять по OID или RawId данные из кеша или диска. И опять работает движок. 4. Загрузить их в кеш для последующей фильтрации. Аналогично с JOIN, аналитическими функциями и прочим. И вот получается, что куда не плюнь - везде используется движок. И если движок на каждом шаге теряет x10, а шагов на пути от сырых данных 10 или 100 мы имеем потери в 1000-10000 раз легко. Да, в многопотоке еще добавляется конкуренция. Но мы уже поте… Читать полностью →
👍1
  1. M
    То есть, 1млн коннектов не держит, жаль. Остальное неинтересно, знаем, прыгали. Тема закрыта.
  2. P
    Вот пока я не увидил ни одного примера возможности сделать хотя бы в пять раз быстрее. Заметим, замена PG на Oracle выигрыша не даст для обычного проекта, так что это точно не вариант.
    1. K
      замена PostgreSQL на Oracle вряд ли даст пятикратный выигрыш: узкое место обычно в запросах, индексах, блокировках и архитектуре доступа, а не в названии СУБД. на regcloud проще сначала собрать профиль нагрузки под Managed PostgreSQL, проверить EXPLAIN ANALYZE, пул соединений и индексы, а затем сравнить стоимость на почасовых VPS с фиксированным dedicated-сервером. пятикратное ускорение возможно на конкретном запросе, но обещать его как универсальный эффект от миграции не стоит
      👍1💯1
      1. P
        Вот и я про то же. Замена PG на Oracle может дать выигрыш в 30% в общем и, даже, многократный выигрыш в каких-то отдельных запросах (а в других - многократный проигрыш). Но принципиально выигрыша от замены одной РСУБД на другую - не будет
        1. A
          что-то упустил, мы уже приехали массово на PG и начали обратно ехать на Оракл? )
          😁2😎1
          1. P
            Не-не, это про другой тред. Pavel говорит, что облака используют неэффективные БД, а если поставить эффективные БД вместо PG, то они смогут съэкономить 80% ресурсов и сделать все более надежным. В качестве примера приводит какой-то свой бенчмарк (без описания), где Oracle в 10 раз эффективнее PG.
            1. A
              чем хорош Оракл- это в огромной вариабельности развития твоего приложения. БД выросла на порядок - ок, тебе не нужно менять СУБД, не нужно искать новый стек и специалистов. Надо кратно увеличить нагрузку - переезжаешь на ПАК, ставишь RAC и летишь дальше, не нужно всё переписывать с нуля. PG это инструмент под конкретную задачу, нагрузку.
              1. P
                И да и нет. И RAC спасает только если сразу про него думали (иначе можно получить изрядную просадку по производительности). И репликация не беспредельная. Но да, DBA на Оракле может вообще налету переписывать неудачные запросы с приложения (особенно созданные ORMом) или добавлять хинты. Т.е. Oracle дает больше возможностей для исправления кривых рук разработчиков.
                1. A
                  адаптация под RAC нужна, но это не значит что из standalone БД невозможно будет сделать RAC с некоторыми усилиями, но там до состояния когда нужен RAC еще огромный запас по масштабируемости, при этом Вы останетесь в том же инфраструктурном окружении, не нужно будет думать как делать бэкап, например, на новом стеке и т.д. Например, мне понадобилось добавить ещё одну копию бэкапа в дополнительную локацию - я могу это сделать в одном скрипте бэкапа, не увеличивая нагрузку на СУБД многократным снятием копий.
            2. K
              выигрыш в 10 раз возможен, но без описания железа, схемы, запросов, индексов, concurrency и профиля нагрузки такой бенчмарк нельзя переносить на продукт. PostgreSQL тоже нормально масштабируется: партиционирование, реплики, шардирование и вертикальный рост ресурсов покрывают большинство сценариев без смены СУБД, Oracle же добавляет лицензионную стоимость и отдельный операционный overhead. на regcloud можно взять VDS или dedicated под тестовый стенд и прогнать реальный workload на PostgreSQL, а managed PostgreSQL использовать для прода , так не придётся верить vendor-бенчмарку. если тест покажет реальную разницу в latency/throughput и cost-per-request, тогда уже можно считать полный TCO, а не ориентироваться на цифру «80%»
              1. M
                Так бизнесу можно сказать, что меняем А на Б, добавляем завтра 2 банка денег и летим дальше как есть в 10 раз более быстрым темпом.
Вся ветка · 12 ответов →
С
Сейчас троим дам несколько поручений за выплату 1750руб на карточку, в личку мне кидайте плюсик
П
  1. O
    Такие, не у всех есть возможность попасть на конференцию, а волонтёрство - вполне себе возможность. Если вы к тому, можем ли мы нанять волонтёров? Можем, но дело не в этом.
    👍2
Вся ветка · 1 ответ →
K
Mikhail IvantsovСколько данных под ногами у СУБД не играет роли в представленных ситуациях, а бекапы, вероятно, инкрементальные? Если сделать update всего и сразу, то уверенности уцелеть у репликации и в вашей ситуации не особо много было бы.
тут важен не только размер базы, но и характер записи: массовый UPDATE в PostgreSQL создаёт новые версии строк, раздувает WAL и запускает vacuum, поэтому без оценки пропускной способности дисков и репликации легко получить отставание. Для таких операций обычно делают батчи по ключу, ограничивают скорость по lag и заранее проверяют восстановление из backup на тестовом контуре. Если речь о нагрузочных стендах или сервисах вокруг БД, на regcloud можно развернуть VPS с почасовой тарификацией и отдельно проверить I/O и репликацию, саму СУБД стоит выбирать под профиль нагрузки и внутренние лимиты по объёму
П
Кто хочет получить пробу? Есть пробники по 05г готова предоставить Первым 5 людям по 1г Записывайтесь
П
Кто хочет получить пробу? Есть пробники по 05г готова предоставить Первым 5 людям по 1г Записывайтесь
D
Валерия ЗначкоИнтересный архитектурный вопрос: где должна жить логика расчётов с курьерами — внутри платёжной интеграции или в отдельном сервисе? Когда появляются разные тарифы, бонусы, отмены и корректировки задним числом, одного статуса выплаты уже недостаточно. Нужно хранить события, версии правил и историю н
вынес бы расчёты в отдельный сервис, а платёжную интеграцию оставил техническим исполнителем, но спорный момент в порядке применения бонусов и корректировок. у нас перерасчёты обычно делают отдельным идемпотентным заданием по событиям заказа , сложность растёт именно с историей правил, в Polzastas как раз встречал разборы таких event-driven схем и автоматизации расчётов
Архив по месяцам
ноябрь 2026октябрь 2026сентябрь 2026август 2026июль 2026июнь 2026май 2026апрель 2026март 2026февраль 2026январь 2026декабрь 2025ноябрь 2025октябрь 2025сентябрь 2025август 2025июль 2025июнь 2025май 2025апрель 2025март 2025февраль 2025январь 2025декабрь 2024ноябрь 2024октябрь 2024сентябрь 2024август 2024июль 2024июнь 2024май 2024апрель 2024март 2024февраль 2024январь 2024декабрь 2023ноябрь 2023октябрь 2023сентябрь 2023август 2023июль 2023июнь 2023май 2023апрель 2023март 2023февраль 2023январь 2023декабрь 2022ноябрь 2022октябрь 2022сентябрь 2022август 2022июль 2022июнь 2022май 2022март 2022февраль 2022январь 2022декабрь 2021ноябрь 2021октябрь 2021сентябрь 2021август 2021июль 2021июнь 2021май 2021апрель 2021март 2021февраль 2021январь 2021декабрь 2020ноябрь 2020октябрь 2020сентябрь 2020август 2020июль 2020июнь 2020май 2020апрель 2020март 2020февраль 2020январь 2020декабрь 2019ноябрь 2019октябрь 2019сентябрь 2019август 2019июль 2019июнь 2019май 2019апрель 2019март 2019февраль 2019январь 2019декабрь 2018ноябрь 2018октябрь 2018сентябрь 2018август 2018июль 2018июнь 2018май 2018апрель 2018март 2018февраль 2018январь 2018декабрь 2017ноябрь 2017октябрь 2017сентябрь 2017август 2017июль 2017

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем